如何删除后端数据库中的SQL记录,VBA,Access

如何删除后端数据库中的SQL记录,VBA,Access,vba,ms-access,Vba,Ms Access,我想删除后端(脱机)数据库中CUSTOMER表中“path”字段中的所有记录 到目前为止,我有这个,但它不适用于DELETE语句 Sub delpath() Dim dbinputC As String dbinputC = "[" & Application.CurrentProject.Path & "\CUSTOMER.accdb" & "]" DoCmd.RunSQL "DELETE pathway FROM " & dbinputC & "

我想删除后端(脱机)数据库中CUSTOMER表中“path”字段中的所有记录

到目前为止,我有这个,但它不适用于DELETE语句

Sub delpath()

Dim dbinputC As String

dbinputC = "[" & Application.CurrentProject.Path & "\CUSTOMER.accdb" & "]"

DoCmd.RunSQL "DELETE pathway FROM " & dbinputC & ".SPECPATH (WHERE pathway <> Null);"

End Sub
Sub-delpath()
作为字符串的Dim dbinputC
DBINPUTT=“[”&Application.CurrentProject.Path&“\CUSTOMER.accdb”&“]
DoCmd.RunSQL“从“&dbinputC&”删除路径。SPECPATH(其中路径为Null)
端接头

Dim dbinputC作为字符串
dbinputC=“””和Application.CurrentProject.Path&“\CUSTOMER.accdb”&”
DoCmd.RunSQL“从“&dbinputC&”中的SPECPATH(其中路径为Null)中删除路径”
删除查询删除的是行,而不是字段


您必须使用更新字段路径的更新查询。

我想它毕竟起作用了:

Sub delpath()

Dim dbinputC As String

 dbinputC = "[" & Application.CurrentProject.Path & "\CUSTOMER.accdb" & "]"
 DoCmd.RunSQL "DELETE pathway FROM " & dbinputC & ".SPECPATH WHERE pathway Is Not Null;"

 End Sub
Source_Recset.SQL应获取“更新SPECPATH集合[SPECPATH].[PATH]=NULL,其中[SPECPATH].[PATH]不为NULL;”如果表为SPECPATH,列名为PATH 因为您引用的是脱机数据库,所以我包含了临时追加表并在之后删除表的代码(如果您保留access文件中定义的表,则不需要代码)


您好,这正是我想要的。要删除“路径”字段中的所有记录(行)。此记录恰好位于另一个数据库中。;)谢谢!行(记录)位于表中。表具有列(字段),您的语句毫无意义。是否要删除字段路径为空的表中的所有行?向已得到的答案中添加:
null
实际上不是一个有效的比较。请改用
is not null
null
始终返回null,因为与null进行比较总是返回null,从而使您的查询不删除任何记录。谢谢!路径如何?它告诉我FROM语句有问题。请确定错误在哪里?第二次尝试接近有效,只有
中的
位于
中的
之前(因此将
中的
移到末尾)并从
WHERE
子句中删除括号。谢谢,看起来很有用,我一定会测试它!
Sub delpath()

Dim dbinputC As String

 dbinputC = "[" & Application.CurrentProject.Path & "\CUSTOMER.accdb" & "]"
 DoCmd.RunSQL "DELETE pathway FROM " & dbinputC & ".SPECPATH WHERE pathway Is Not Null;"

 End Sub
 Private Sub Test_Clear_Data
     Clear_Data "SPECPATH", "Pathway"
 End Sub


 Private Sub Clear_Data(Table_Name as String, Column_Name As String)
 Dim Connection_Path As String
 Dim Source_Recset As Object
 'Assumes "Clear_Data_Query" already exists
   Set Source_Recset = CurrentDB.QueryDefs("Clear_Data_Query")
   Source_Recset.SQL = CStr("Update " & Table_Name & " SET [" & Table_Name & "].[" & Column_Name & "] = NULL WHERE [" & Table_Name & "].[" & Column_Name & "] IS NOT Null" & ";")
   Source_Recset.Execute
   Source_Recset.Close
End Sub
Private Sub Clear_Offline_Data(Share_Folder as String, File_Name as String, Table_Name as String, Column_Name As String)
Dim Connection_Path As String
Dim Source_Recset As Object
Dim Destination_Recset As Object

'Create Table To Network Data
   Set Destination_Recset = currentDB.CreateTableDef("Offline_Data_Table")
   Connection_Path = ";DATABASE=" & ShareFolder & "\" & File_Name
   Destination_Recset.Connect = Connection_Path
   Destination_Recset.SourceTableName = Table_Name

   currentDB.TableDefs.Append Destination_Recset
   currentDB.TableDefs.Refresh
'Create Temp_Data From Network Table
   Set Source_Recset = CurrentDB.CreateQueryDef("Clear_Data_Query")
   Source_Recset.SQL = CStr("Update Offline_Data_Table SET [Offline_Data_Table]." & Column_Name & " = NULL WHERE [Offline_Data_Table]." & Column_Name & " IS NOT Null" & ";")
   Source_Recset.Execute
   Source_Recset.Close
'Remove Table to network data 
   currentDB.TableDefs.Delete "Offline_Data_Table"
   currentDB.TableDefs.Refresh
'Remove Query
   currentDB.QueryDefs.Delete "Clear_Data_Query"
   currentDB.QueryDefs.Refresh
End Sub