Я пытаюсь импортировать некоторые данные из файла .mbd в Excel. Я могу скопировать всю базу данных в электронную таблицу, нет проблем. Я также могу использовать такое утверждение
sSQL = "SELECT HOEHE " & "FROM h_datei WHERE HOEHE >= 53 "
Проблема возникает при использовании WHERE в поле, имеющем тип, отличный от int или float. (У меня нет MS Access, но MDB Plus сообщает мне, что тип текстовых полей в моем .mdb называется «Широкая строка»)
Я получаю это в MsgBox из Excel: ошибка времени выполнения «-2147217913 (80040e07)»: ошибка автоматизации
Я довольно долго гуглил и возился, но я застрял. Ниже мой код VBA. Я не знаю, связано ли это с провайдером (Microsoft.ACE.OLEDB.12.0), но я пробовал несколько других. Я также думаю о юникоде, так как эта база данных взята из немецкой геодезической программы.
sConnect = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & _
sPath & "Oskarb04.mdb"
sSQL = "SELECT HOEHE " & "FROM h_datei WHERE PNR >= 53 "
Set rsData = New ADODB.Recordset
Debug.Print sSQL
rsData.Open sSQL, sConnect, adOpenForwardOnly, adLockReadOnly, adCmdUnknown
'SELECT hoehe FROM h_datei WHERE PNR = '1169'
ничего не возвращает, аSELECT hoehe FROM h_datei WHERE PNR = 1169
выдает ошибку автоматизации - person toygarden   schedule 08.03.2018sSQL = "SELECT hoehe, pnr " & "FROM h_datei WHERE PNR <= '1169' "
(со знаком меньше) дает мне весь столбец - person toygarden   schedule 08.03.2018sSQL = "SELECT hoehe, pnr " & "FROM h_datei WHERE PNR = '309' "
Нет результатов.sSQL = "SELECT hoehe, pnr " & "FROM h_datei WHERE PNR = 309 "
Ошибка автоматизацииsSQL = "SELECT hoehe, pnr " & "FROM h_datei WHERE PNR LIKE '309' "
Нет результатов. Столбец PNR имеет тип widestring и содержит значение 309. - person toygarden   schedule 08.03.2018sSQL = "SELECT hoehe, pnr " & "FROM h_datei WHERE PNR = N'309' "
Выдает ошибку автоматизации - person toygarden   schedule 08.03.2018