如何使用引用另一个表中的值的where语句执行update SQL查询
我想使用和SQL查询更新表中的记录,该查询使用where语句引用另一个表中的其他值 在下面的示例中,我根据我构建的select查询获取了值,并将它们重新定位到一个名为“tblSearchEngine05”的表中。此时,我正试图使用基于“TBLSearchenine05”中的值的条件查询来更新表“tblSearchEngin01”中的一列。我试图使用两个填充的字段[TBLSearchine05].[enddate]和[TBLSearchine05].[startdate]作为条件的值。不幸的是,似乎有语法错误消息如何使用引用另一个表中的值的where语句执行update SQL查询,sql,ms-access,vba,ms-access-2010,Sql,Ms Access,Vba,Ms Access 2010,我想使用和SQL查询更新表中的记录,该查询使用where语句引用另一个表中的其他值 在下面的示例中,我根据我构建的select查询获取了值,并将它们重新定位到一个名为“tblSearchEngine05”的表中。此时,我正试图使用基于“TBLSearchenine05”中的值的条件查询来更新表“tblSearchEngin01”中的一列。我试图使用两个填充的字段[TBLSearchine05].[enddate]和[TBLSearchine05].[startdate]作为条件的值。不幸的是,似
Private Sub myComboBox_Change()
Dim startDate As Date
Dim endDate As Date
Dim period As String
Dim dayOfWeek As Integer
Dim monthOfQuarter As Integer
period = Me.myComboBox
startDate = DateSerial(Year(Date), Month(Date), Day(Date))
Select Case period
Case "Today"
endDate = DateAdd("d", 1, startDate)
'deletes all records in holding table "tblsearchengine05"
st_sql = "Delete [tblsearchengine05].[startdate]FROM tblsearchengine05"
Application.DoCmd.RunSQL (st_sql)
' updates the holding table "tblSearchEngine05" to reflect the correct start and finish date
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("tblSearchEngine05", dbOpenTable)
rst.AddNew
rst!startDate = startDate
rst!FinishDate = endDate
rst.Update
rst.Close
Set rst = Nothing
' clears the Query02DateSelect column on table tblSearchEngine01
st_sql = "UPDATE tblSearchEngine01 SET tblSearchEngine01.Query02DateSelect = NULL"
Application.DoCmd.RunSQL (st_sql)
' updates the column [tblSearchEngine01].[query02dateselect] to identify which records contain the specified date range criteria
st_sql = "UPDATE tblSearchEngine01, tblSearchEngine05 SET tblSearchEngine01.Query02DateSelect = '1' WHERE (((tblSearchEngine01.[Automatic date of entry])>=([tblSearchEngine05].[StartDate]) And (tblSearchEngine01.[Automatic date of entry])<=([tblSearchEngine05].[FinishDate])))"
Application.DoCmd.RunSQL (st_sql)
Private Sub-myComboBox\u Change()
Dim startDate作为日期
Dim endDate作为日期
将周期变暗为字符串
Dim dayOfWeek作为整数
Dim MONTHOF四分之一为整数
period=Me.mycombox
startDate=DateSerial(年(日)、月(日)、日(日))
选择病例周期
案例“今天”
endDate=DateAdd(“d”,1,startDate)
'删除保留表“tblsearchengine05”中的所有记录'
st_sql=“从TBLSearchenine05中删除[TBLSearchenine05]。[startdate]
Application.DoCmd.RunSQL(st_sql)
'更新保留表“TBLSearchine05”以反映正确的开始和完成日期
将rst设置为DAO.Recordset
Set rst=CurrentDb.OpenRecordset(“TBLSearchine05”,dbOpenTable)
rst.AddNew
rst!开始日期=开始日期
rst!FinishDate=endDate
rst.更新
rst.关闭
设置rst=无
'清除表TBLSearchine01上的Query02DateSelect列
st_sql=“更新TBLSearchenine01设置TBLSearchenine01.Query02DateSelect=NULL”
Application.DoCmd.RunSQL(st_sql)
'更新列[TBLSearchine01]。[query02dateselect]以标识哪些记录包含指定的日期范围条件
st_sql=“UPDATE tblsearchenine01,tblsearchenine05 SET tblsearchenine01.Query02DateSelect='1',其中(((tblsearchenine01.[Automatic date of entry])>=([tblsearchenine05].[StartDate])和(tblsearchenine01.[Automatic date of entry])私有子框
Dim startDate作为日期
Dim endDate作为日期
将周期变暗为字符串
Dim dayOfWeek作为整数
Dim MONTHOF四分之一为整数
period=Me.mycombox
startDate=DateSerial(年(日)、月(日)、日(日))
选择病例周期
案例“今天”
endDate=DateAdd(“d”,1,startDate)
'删除保留表“tblsearchengine05”中的所有记录'
st_sql=“从TBLSearchenine05中删除[TBLSearchenine05]。[startdate]
Application.DoCmd.RunSQL(st_sql)
'更新保留表“TBLSearchine05”以反映正确的开始和完成日期
将rst设置为DAO.Recordset
Set rst=CurrentDb.OpenRecordset(“TBLSearchine05”,dbOpenTable)
rst.AddNew
rst!开始日期=开始日期
rst!FinishDate=endDate
rst.更新
rst.关闭
设置rst=无
'清除表TBLSearchine01上的Query02DateSelect列
st_sql=“更新TBLSearchenine01设置TBLSearchenine01.Query02DateSelect=NULL”
Application.DoCmd.RunSQL(st_sql)
'更新列[TBLSearchine01]。[query02dateselect]以标识哪些记录包含指定的日期范围条件
st_sql=“UPDATE tblsearchenine01,tblsearchenine05 SET tblsearchenine01.Query02DateSelect='1',其中(((tblsearchenine01.[自动输入日期])>=([tblsearchenine05].[StartDate])和(tblsearchenine01.[自动输入日期])语法错误是…?有两个针对tbllSearchEngine01的更新语句-哪一个似乎抛出了错误?第二个。第一个我只是用来清除我想更新的列。(它工作正常)我得到了它。谢谢,上面的代码被正确更新了
Private Sub myComboBox_Change()
Dim startDate As Date
Dim endDate As Date
Dim period As String
Dim dayOfWeek As Integer
Dim monthOfQuarter As Integer
period = Me.myComboBox
startDate = DateSerial(Year(Date), Month(Date), Day(Date))
Select Case period
Case "Today"
endDate = DateAdd("d", 1, startDate)
'deletes all records in holding table "tblsearchengine05"
st_sql = "Delete [tblsearchengine05].[startdate]FROM tblsearchengine05"
Application.DoCmd.RunSQL (st_sql)
' updates the holding table "tblSearchEngine05" to reflect the correct start and finish date
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("tblSearchEngine05", dbOpenTable)
rst.AddNew
rst!startDate = startDate
rst!FinishDate = endDate
rst.Update
rst.Close
Set rst = Nothing
' clears the Query02DateSelect column on table tblSearchEngine01
st_sql = "UPDATE tblSearchEngine01 SET tblSearchEngine01.Query02DateSelect = NULL"
Application.DoCmd.RunSQL (st_sql)
' updates the column [tblSearchEngine01].[query02dateselect] to identify which records contain the specified date range criteria
st_sql = "UPDATE tblSearchEngine01, tblSearchEngine05 SET tblSearchEngine01.Query02DateSelect = '1' WHERE (((tblSearchEngine01.[Automatic date of entry])>=([tblSearchEngine05].[StartDate]) And (tblSearchEngine01.[Automatic date of entry])<=([tblSearchEngine05].[FinishDate])))"
Application.DoCmd.RunSQL (st_sql)