这是我的代码:
Sub GetCadastralInfo()
Dim dbPath As String
Dim cadNumber As String
Dim conn As Object
Dim rs As Object
Dim sql As String
Dim result As Variant
Dim i As Integer
On Error GoTo ErrorHandler
dbPath = "C:\my_python\Bot_aio\akt\egrn_kpt.db"
cadNumber = Trim(ActiveCell.Value) ' Удалить лишние пробелы
' Соединение
Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
' Откройте соединение с базой данных
conn.Open "Driver={SQLite3 ODBC Driver};Database=" & dbPath & ";"
' SQL запрос для поиска информации по кадастровому номеру
sql = "SELECT value_by_document FROM ZY WHERE cad_n = '" & cadNumber & "';"
' Выполните запрос и получите набор записей
Set rs = conn.Execute(sql)
' Инициализация переменной строки
i = 1 ' Начинаем с первой строки
' Проверка наличия данных
If Not rs.EOF Then
While Not rs.EOF
Cells(i, 1).Value = rs.Fields(0).Value
' Если у вас есть второе поле, убедитесь, что оно существует
If rs.Fields.Count > 1 Then
Cells(i, 2).Value = rs.Fields(1).Value
End If
i = i + 1
rs.MoveNext
Wend
Else
MsgBox "Нет данных для данного кадастрового номера.", vbInformation
End If
' Закрытие набора записей и соединения
rs.Close
conn.Close
Exit Sub
ErrorHandler:
MsgBox "Ошибка: " & Err.Description, vbCritical, "Ошибка"
If Not rs Is Nothing Then
If rs.State = 1 Then rs.Close ' Закрываем, если открыто
End If
If Not conn Is Nothing Then
If conn.State = 1 Then conn.Close ' Закрываем, если открыто
End If
End Sub
由于某种原因,它不断显示:“该地籍号码没有数据。”,尽管数据库在ZY表中有一个条目(这些是土地),并且我想要value_by_document列(这是土地的 VRI,例如 - “用于运行个人附属地块”)。因此,在单元格 A1 中(例如),我输入地籍号码(例如 - “52:15:0140112:10”),然后按组合键ctrl+f8并执行此代码,它显示没有数据。SQLite ODBC 驱动程序是从网站安装的。我想编写可以访问数据库的代码。请帮忙。