Ошибка в инструкции update при выполнении операций с dbf через ADO - VB

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, люди добрые!
Необходимо сравнить 2 файла с различной структурой (в одной урезаны некоторые поля)
есть код:
Set conn = New ADODB.Connection
conn.ConnectionString = "DRIVER={Microsoft dBase Driver (*.dbf)};" & "DBQ=" & s & ";" & "DefaultDir=" & s & "\"
conn.Open
Set Rst = New ADODB.Recordset
s3 = "SELECT * FROM " & s2
Rst.Open s3, conn, dbOpenStatic, adLockOptimistic
Set conn2 = New ADODB.Connection
conn2.ConnectionString = "DRIVER={Microsoft dBase Driver (*.dbf)};" & "DBQ=" & ss & ";" & "DefaultDir=" & ss & "\"
conn2.Open
Set rst2 = New ADODB.Recordset
ss3 = "SELECT * FROM " & ss2
rst2.Open ss3, conn2
Do Until Rst.EOF
s6 = Rst.Fields(0).Value
Do Until rst2.EOF
s7 = rst2.Fields(0).Value
If s6 = s7 Then
Rst.Fields(0).Value = "0"
Rst.update
End If
rst2.MoveNext
Loop
Rst.MoveNext
Loop
Rst.Close: Set Rst = Nothing
conn.Close: Set conn = Nothing
rst2.Close: Set rst2 = Nothing
conn2.Close: Set conn2 = Nothing

после обработки первой записи, выдается runtime error (80004005): Ошибка синтаксиса в инструкции Update.
По идее нужно запись удалить, но мне её обнулить хотя бы, чтобы потом запросом почистить строки, где поле с нулевым значением.
Как исправить не знаю... Может что с кодом в целом?

Решение задачи: «Ошибка в инструкции update при выполнении операций с dbf через ADO»

textual
Листинг программы
<font color="blue">Set</font> conn = <font color="blue">New</font> ADODB.Connection
conn.ConnectionString = <font color="teal">"DRIVER={Microsoft dBase Driver (*.dbf)};"</font> & <font color="teal">"DBQ="</font> & s & <font color="teal">";"</font> & <font color="teal">"DefaultDir="</font> & s & <font color="teal">"\"</font>
conn.<font color="blue">Open</font>

<font color="00AA00">'обновление</font>

conn.execute <font color="teal">"update ["</font> & ss2 & <font color="teal">"] set ["</font> & ss2 & <font color="teal">"].[NUMBER]=0 where ["</font> & ss2 & <font color="teal">"].[NUMBER] in "</font> & _
<font color="teal">"(select [t].[NUMBER] from ["</font> & ss2 & <font color="teal">"] as t inner join ["</font> & s2 & <font color="teal">"] as tt on [t].[NUMBER] = [tt].[NUMBER])"</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы