VB6 Access 更新查询未更新 table
VB6 Access update query not updating table
我正在尝试在 do 循环中将一个数字按顺序添加到作业编号的字段中。我的代码没有中断,但没有将记录添加到 table。代码编写在按下访问表单按钮以更新记录时调用的函数中。下面是我的代码:
Dim NumofBatches As Integer
NumofBatches = [Batches]
Dim startnum As Integer
startnum = 1
Dim jobnum As String
jobnum = [JobNumber]
Do While startnum <= NumofBatches
Dim mynumString As String
mynumString = startnum
DoCmd.RunSQL "INSERT INTO Production (CardCode,JobItemNo,JobIndex,DrawingRef,DRDescription,[CreationDate],Quantity,FinishDate,LastLocation,DateLastMoved) VALUES ('" & jobnum & mynumString & "', ItemNumber, JobNumber, DrawingRef, DRDescription, [CreationDate], Quantity, FinishDate, LastLocation, DateLastMoved)"
startnum = startnum + 1
Loop
我意识到我将有重复的字段行,除了我想要实现的 cardcode 字段。卡片代码字段在工作编号的每一行中应该是连续的。例如,100011、100012,其中 10001 是作业编号,它依次添加 1、2 等。
你有几个问题。第一个在 SQL 语句的 INSERT 部分的字段列表中。除非你的 Production table 中有一个名为 "CardCode + mynumString" 的列(如果你这样做了,它周围必须有方括号,因为它有一个 space 和一个符号)它不是去上班。在 INSERT INTO <TableName>
之后的括号内,您必须列出要插入的 table 中的列名。首先修复目标列名称。
接下来您有一个 SELECT 语句作为您要插入的值的来源。除非在 table 中找到您需要的值,否则您应该使用 VALUES
列表:
INSERT INTO <TableName> (Col1, Col2, ...) VALUES (Val1, Val2, ...)
最后一个问题是您必须将变量连接到 SQL 字符串中。我假设 [Text90] 是一个控件,其中包含您的 CardCode 值,并且您想要将它与 mynumString 连接起来。那看起来像这样:
DoCmd.RunSQL "INSERT INTO Production (Col1, Col2, ...) VALUES ('" & [Text90] & mynumString & "', Val2, ...)"
请注意,您必须在引用的 SQL 字符串之外解析您的值,并将该值连接到字符串中,并在 SQL 字符串内使用单引号将所有这些设置为关闭。
我发现使用变量构建这样的动态 SQL 字符串很方便,然后将其执行为:
DoCmd.RunSQL mySQLVariable
在变量中包含 SQL 字符串可以更容易地发现连接中的错误,如果您在调试期间检查变量或者如果您只是将值转储到直接 window Debug.Print.
我正在尝试在 do 循环中将一个数字按顺序添加到作业编号的字段中。我的代码没有中断,但没有将记录添加到 table。代码编写在按下访问表单按钮以更新记录时调用的函数中。下面是我的代码:
Dim NumofBatches As Integer
NumofBatches = [Batches]
Dim startnum As Integer
startnum = 1
Dim jobnum As String
jobnum = [JobNumber]
Do While startnum <= NumofBatches
Dim mynumString As String
mynumString = startnum
DoCmd.RunSQL "INSERT INTO Production (CardCode,JobItemNo,JobIndex,DrawingRef,DRDescription,[CreationDate],Quantity,FinishDate,LastLocation,DateLastMoved) VALUES ('" & jobnum & mynumString & "', ItemNumber, JobNumber, DrawingRef, DRDescription, [CreationDate], Quantity, FinishDate, LastLocation, DateLastMoved)"
startnum = startnum + 1
Loop
我意识到我将有重复的字段行,除了我想要实现的 cardcode 字段。卡片代码字段在工作编号的每一行中应该是连续的。例如,100011、100012,其中 10001 是作业编号,它依次添加 1、2 等。
你有几个问题。第一个在 SQL 语句的 INSERT 部分的字段列表中。除非你的 Production table 中有一个名为 "CardCode + mynumString" 的列(如果你这样做了,它周围必须有方括号,因为它有一个 space 和一个符号)它不是去上班。在 INSERT INTO <TableName>
之后的括号内,您必须列出要插入的 table 中的列名。首先修复目标列名称。
接下来您有一个 SELECT 语句作为您要插入的值的来源。除非在 table 中找到您需要的值,否则您应该使用 VALUES
列表:
INSERT INTO <TableName> (Col1, Col2, ...) VALUES (Val1, Val2, ...)
最后一个问题是您必须将变量连接到 SQL 字符串中。我假设 [Text90] 是一个控件,其中包含您的 CardCode 值,并且您想要将它与 mynumString 连接起来。那看起来像这样:
DoCmd.RunSQL "INSERT INTO Production (Col1, Col2, ...) VALUES ('" & [Text90] & mynumString & "', Val2, ...)"
请注意,您必须在引用的 SQL 字符串之外解析您的值,并将该值连接到字符串中,并在 SQL 字符串内使用单引号将所有这些设置为关闭。
我发现使用变量构建这样的动态 SQL 字符串很方便,然后将其执行为:
DoCmd.RunSQL mySQLVariable
在变量中包含 SQL 字符串可以更容易地发现连接中的错误,如果您在调试期间检查变量或者如果您只是将值转储到直接 window Debug.Print.