Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access MS Access 2013复制特定数量的字段并粘贴到新记录中_Ms Access_Vba_Ms Access 2013 - Fatal编程技术网

Ms access MS Access 2013复制特定数量的字段并粘贴到新记录中

Ms access MS Access 2013复制特定数量的字段并粘贴到新记录中,ms-access,vba,ms-access-2013,Ms Access,Vba,Ms Access 2013,我已经找到了这个问题的类似答案,即使是在这个网站上,但是语法对我的数据库不起作用,我不确定需要做什么。该数据库用于对员工绩效和准确性进行内部审计。我现在正在创建表单,并让它们为用户正确流动 进行审核时,用户需要在第一个表单中输入六个特定字段。这些表单包括审核、月份、年份、用户名、位置、审阅者和日期。用户将需要完成多个审核,但是,这六个字段始终相同 我想复制第一个表单中的这些字段,并将它们放入第二个表单中,这样用户就不必重复信息。这是我的当前代码(设置为单击屏幕1底部的命令按钮即可运行): 每次运

我已经找到了这个问题的类似答案,即使是在这个网站上,但是语法对我的数据库不起作用,我不确定需要做什么。该数据库用于对员工绩效和准确性进行内部审计。我现在正在创建表单,并让它们为用户正确流动

进行审核时,用户需要在第一个表单中输入六个特定字段。这些表单包括审核、月份、年份、用户名、位置、审阅者和日期。用户将需要完成多个审核,但是,这六个字段始终相同

我想复制第一个表单中的这些字段,并将它们放入第二个表单中,这样用户就不必重复信息。这是我的当前代码(设置为单击屏幕1底部的命令按钮即可运行):

每次运行此命令时,我都会收到以下错误:“无效的SQL语句;应为“DELETE”、“INSERT”、“PROCEDURE”、“SELECT”或“UPDATE”

我刚接触Access,不确定这意味着什么或如何修复它。我所知道的是我没有找到解决方案。有人能帮忙吗?我非常感谢。

插入表(…)值(…)
不能有FROM或WHERE子句。插入具有固定值的单个记录,而不是来自另一个表的数据

但一旦删除这些子句,就会出现其他错误,因为需要正确设置字符串和日期值的格式,才能使INSERT查询正常工作

然后您仍然容易出现SQL注入错误。使用
Recordset.AddNew
.Update
添加记录更安全

参见此处示例:
(但没有循环)

下面是一个示例,说明了不使用SQL执行操作的方法:

通过表格1打开

…完成各个字段:

单击复制到表格2按钮,将打开表格2,并用表格1中的数据填充其字段:

以下是复制到表单2按钮的OnClick事件上的VBA代码:

Private Sub cmdCopyToFrm2\u Click()
作为形式的Dim frm
DoCmd.OpenForm“Form2”
设置frm=表格!表格2
使用frm
!AuditRef=Me.cboFP1Audit
!AuditMonth=Me.txtuditmonth
!AuditYear=Me.txtudityear
!AuditUsername=Me.txtAuditUsername
!Location=Me.txtLocation
!Reviewer=Me.txtReviewer
!AuditDate=Me.txtAuditDate
以
端接头

请注意,当表单2打开时,光标默认设置的文本框可能不会显示任何数据;如果您离开该文本框,它应该会神奇地显示出来(不知道它为什么会这样做,但就这样).

因此,您想将在一个表单的字段中输入的数据复制到另一个表单,对吗?如果两个表单同时打开,则无需sql或更改表中的数据即可轻松完成此操作。请告诉我您是否正在尝试这样做,我将给出正确的答案。是的,除非我需要在完成后关闭第一个表单数据被复制到第二个表单中。大部分时间数据都需要复制到三到四个以上的记录中。最好让代码同时打开和关闭初始表单。
Dim strSQL As String
strSQL = "INSERT INTO [tblTripMem] (Audit, Month, Year, Username, Location, Reviewer, Date)"
strSQL = strSQL & " Values (" & Me.cboFP1Audit & "," & Me.Month & "," & Me.Year & "," & Me.Username & "," & Me.Location & "," & Me.Reviewer & "," & Me.Date & ") FROM [FPScreen1]"
strSQL = strSQL & "WHERE (currentrecord = " & Me.CurrentRecord & ")"
DoCmd.RunSQL (strSQL)