Mar*_*arc 3 ms-access vba access-vba ms-access-2010
我将表单上未绑定文本框中的七个值拉入变量.五个变量是字符串类型,两个是double.然后我使用sql将数据附加到一个表使用where语句和一个全局变量,该变量包含我从另一个表中使用的外键,因为我不确定如何使用opentogs与browseto ...
Option Compare Database
Private Sub Form_Load()
Dim rowN, rowR, mat, crew, perCom As String
Dim budEst, curBud As Double
End Sub
Private Sub btnCapSubmit_Click()
rowN = Me.CAP_ROW_N
rowR = Me.CAP_ROW_R
mat = Me.CAP_MAT
crew = Me.CAP_CREW
perCom = Me.CAP_PER
budEst = Me.CAP_BUD_EST
curBud = Me.CAP_BUD_CUR
Dim appendIt As String
appendIt = "INSERT INTO CAPITAL " & _
"([CAPITAL].[CAP_ROW_N], CAPITAL.[CAP_ROW_R], [CAPITAL].[CAP_MAT], [CAPITAL].[CAP_CREW], [CAPITAL].[CAP_PER], [CAPITAL].[CAP_BUD_EST], [CAPITAL].[CAP_BUD_CUR]) " & _
"VALUES ('" & rowN & "','" & rowR & "','" & mat & "','" & crew & "','" & perCom & "','" & budEst & "','" & curBud & "') WHERE [PRO_ID] = '" & gblFind & "';"
Debug.Print appendIt
DoCmd.RunSQL appendIt
DoCmd.BrowseTo acBrowseToForm, "frmSearchEdit", "NavForm.NavigationSubform", , , acFormEdit
End Sub
Run Code Online (Sandbox Code Playgroud)
Access抱怨错误#3067,"查询输入必须包含至少一个表或查询."
我不知道我在做什么.我尝试使用debug.print,但没有看到任何东西.然后我一整天都在研究这个数据库,所以我可以忽略一些非常简单的事情.
PS我也尝试用Me.CAP_ROW_N(文本框名称)替换变量,但没有骰子.
目前还不清楚你在这里要做什么,但INSERT INTO ... VALUES ()声明中没有一个WHERE条款.错误3067是"查询输入必须至少包含一个表或查询".您可能会看到此错误,因为您已包含WHERE子句但未从表中选择现有值.
试试这个:
appendIt = "INSERT INTO CAPITAL " & _
"([CAPITAL].[CAP_ROW_N], CAPITAL.[CAP_ROW_R], [CAPITAL].[CAP_MAT], [CAPITAL].[CAP_CREW], [CAPITAL].[CAP_PER], [CAPITAL].[CAP_BUD_EST], [CAPITAL].[CAP_BUD_CUR]) " & _
"VALUES ('" & rowN & "','" & rowR & "','" & mat & "','" & crew & "','" & perCom & "','" & budEst & "','" & curBud & "');"
Run Code Online (Sandbox Code Playgroud)
这里还有其他几个问题.我会列出它们并让你获得更多指导:
.ExecuteDAO方法,而不是DoCmd.RunSQL因为它允许更好的错误处理,尤其是与dbFailOnError选项一起使用时.WHERE LastName = 'O'Malley'