Ошибка в инструкции 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.
По идее нужно запись удалить, но мне её обнулить хотя бы, чтобы потом запросом почистить строки, где поле с нулевым значением.
Как исправить не знаю... Может что с кодом в целом?
Необходимо сравнить 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>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д