INSERT INTO按钮仅插入一次

时间:2018-06-13 02:54:59

标签: vba ms-access insert-into

Private Sub btnMissingModels_Click()

' Define variables
Dim IDToUpdate As String
Dim m_strSQL As String

' Grab ID
IDToUpdate = Me.FINLDATA_ID.Value

' INSERT ID and missing model - only works once (for T300 - 0000300) and doesn't ignore 'Removed' models
m_strSQL = "INSERT INTO [FINLDATA MODELS] (FINLDATA_ID, MODEL)" & _
        "SELECT '" & IDToUpdate & "', MODEL FROM T_MODELS_LIST WHERE NOT EXISTS (SELECT MODEL FROM [FINLDATA MODELS] WHERE [FINLDATA MODELS].MODEL = T_MODELS_LIST.MODEL)"

RunSQL m_strSQL

' Refresh the form display
Me.F_EDIT_ENTRIES_MODEL_SUB.Form.Requery

End Sub

按钮效果很好,但只能使用一次。例如,我单击它,它会添加FINLDATA_ID和FINLDATA MODELS中不存在的第一个MODEL,但如果我再次单击它,则不会添加下一个缺失的MODEL。

此外,我想添加第二个WHERE条件,但似乎无法使用'AND'使其工作我尝试了一系列语法,但似乎没有工作。我认为它可以在WHERE(条件1)和(条件2)下工作。第二个条件是:

WHERE(((T_MODELS_LIST.REMOVED)=否))。

这会过滤掉所有被取代的模型。我在之前的查询中使用了这个条件并且运行良好。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这可能无法解决您的问题,但应指定正在使用的库。由于看起来您使用的是本机访问库,因此这将是DAO库,因此请更改RunSQL中的Dim语句,如下所示:

Dim dbs as DAO.Recordset
Dim qdfSQL as DAO.QueryDef

有时不指定库可能会导致问题,如果发生任何变化,请告诉我。

相关问题