这段代码中,参数 "value3" 在第一个和第三个 Case 语句中没有被指定值。您需要根据需要为该参数添加指定值。

Private Sub CommandButton11_Click()
Dim j As Integer
For j = 0 To 2
Call ParamFactValue_Fun(j)
Next j
End Sub
Sub ParamFactValue_Fun(j As Integer)
Dim i As Integer
' 创建连接
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\检测设备\压力试验机\新vba\" & destinationDatabase

On Error GoTo ErrorHandler ' 设置错误处理
' 循环插入参数
For i = 0 To 2
    Dim cmd As ADODB.Command
    Set cmd = New ADODB.Command
    cmd.ActiveConnection = conn
    
    ' 根据不同的参数类型设置 SQL 命令
    Select Case i
        Case 0 ' 直径
            cmd.CommandText = "insert into ParamFactValue(TestNo,littleNo,Name,TheValue,Unit,UserOrResultParam) values (?,?,?,?,?,?)"
            cmd.Parameters.Append cmd.CreateParameter("value0", adVarChar, adParamInput, 255, Range("H7").Value + j) '检测过程的编号
            cmd.Parameters.Append cmd.CreateParameter("value1", adVarChar, adParamInput, 255, i) '头编号
            cmd.Parameters.Append cmd.CreateParameter("value2", adVarChar, adParamInput, 255, "直径")
            cmd.Parameters.Append cmd.CreateParameter("value3", adVarChar, adParamInput, 255, **需要添加的指定值** ) ' 添加 "value3" 的值
            cmd.Parameters.Append cmd.CreateParameter("value4", adVarChar, adParamInput, 255, "mm")
            cmd.Parameters.Append cmd.CreateParameter("value5", adVarChar, adParamInput, 255, 0)
        Case 1 ' 面积
            cmd.CommandText = "insert into ParamFactValue(TestNo,littleNo,Name,TheValue,Unit,UserOrResultParam) values (?,?,?,?,?,?)"
            cmd.Parameters.Append cmd.CreateParameter("value0", adVarChar, adParamInput, 255, Range("H7").Value + j) '检测过程的编号
            cmd.Parameters.Append cmd.CreateParameter("value1", adVarChar, adParamInput, 255, i - 1) '头编号
            cmd.Parameters.Append cmd.CreateParameter("value2", adVarChar, adParamInput, 255, "面积")
            cmd.Parameters.Append cmd.CreateParameter("value3", adVarChar, adParamInput, 255, 17671.458375)
            cmd.Parameters.Append cmd.CreateParameter("value4", adVarChar, adParamInput, 255, "mm^2")
            cmd.Parameters.Append cmd.CreateParameter("value5", adVarChar, adParamInput, 255, 1)
        Case 2 ' 力值
            cmd.CommandText = "insert into ParamFactValue(TestNo,littleNo,Name,TheValue,Unit,UserOrResultParam) values (?,?,?,?,?,?)"
            cmd.Parameters.Append cmd.CreateParameter("value0", adVarChar, adParamInput, 255, Range("H7").Value + j) '检测过程的编号
            cmd.Parameters.Append cmd.CreateParameter("value1", adVarChar, adParamInput, 255, i - 1) '头编号
            cmd.Parameters.Append cmd.CreateParameter("value2", adVarChar, adParamInput, 255, "力值")
            cmd.Parameters.Append cmd.CreateParameter("value3", adVarChar, adParamInput, 255, **需要添加的指定值** ) ' 添加 "value3" 的值
            cmd.Parameters.Append cmd.CreateParameter("value4", adVarChar, adParamInput, 255, "KN")
            cmd.Parameters.Append cmd.CreateParameter("value5", adVarChar, adParamInput, 255, 1)


    End Select
    
    cmd.Execute
    
Next i


conn.Close ' 关闭数据库连接
Set conn = Nothing ' 清空对象

Exit Sub ' 正常结束
'MsgBox "ParamDactValue数据表更新完成"
ErrorHandler:
MsgBox Err.Description ' 显示错误信息
conn.Close ' 关闭数据库连接
Set conn = Nothing ' 清空对象
End Sub

请根据您的实际需求替换代码中的 "需要添加的指定值"。

VBA 代码优化:为 ParamFactValue_Fun 中的

原文地址: https://www.cveoy.top/t/topic/qeZ4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录