注册 登录
编程论坛 VB6论坛

无效外部过程

鱼鱼余 发布于 2018-06-30 21:18, 3266 次点击
Private Sub Command24_Click()
 Dim strSQL As String
 If IsNull(订单追加!Label32) Or Label32 = "" Then
    MsgBox "请输入您的姓名!", vbCritical, "警告消息"
 If IsNull(订单追加!Label34) Or Label34 = "" Then
    MsgBox "请输入您的联系电话!", vbCritical, "警告消息"
 If IsNull(订单追加!特产名称_标签) Or 特产名称_标签 = "" Then
    MsgBox "请选择特产!", vbCritical, "警告消息"
 If IsNull(订单追加!Label6) Or Label6 = "" Then
    MsgBox "请输入订货数量!", vbCritical, "警告消息"
 If IsNull(订单追加!Label8) Or Label8 = "" Then
    MsgBox "请输入送货地址!", vbCritical, "警告消息"
 ElseIf Not IsNull(特产名称_标签 & Label6 & Label8 & Label32 & Label34) Then
    strSQL = "insert into 销售订单 (顾客姓名,顾客电话,特产名称,订货数量,顾客地址)"
    strSQL = strSQL & "values('" & 订单追加!Label32 & " ','" & 订单追加!Label34 & " ', '" & 订单追加!特产名称_标签 & " ','" & 订单追加!Label6 & " ', '" & Me!Label18 & " ')"
    DoCmd.RunSQL strSQL
    MsgBox "您已成功下单!", vbOKOnly, "成功"
 End If
End Sub
 为什么此过程会出现无效外部过程。求各位大佬解答~~
2 回复
#2
风吹过b2018-07-01 12:29
if 没有匹配闭合。

连续判断 ,可以使用

if ... then
 ...
elseif .... then
...
elseif ... then
 ...
....
end if
结构。
#3
ZHRXJR2018-07-02 10:55
程序代码:

Private Sub Command24_Click()

 Dim strSQL As String

 If IsNull(订单追加!Label32) Or Label32 = "" Then
    MsgBox "请输入您的姓名!", vbCritical, "警告消息"
    Exit Sub

 End If

 If IsNull(订单追加!Label34) Or Label34 = "" Then
    MsgBox "请输入您的联系电话!", vbCritical, "警告消息"
    Exit Sub

 End If

 If IsNull(订单追加!特产名称_标签) Or 特产名称_标签 = "" Then
    MsgBox "请选择特产!", vbCritical, "警告消息"
    Exit Sub

 End If

 If IsNull(订单追加!Label6) Or Label6 = "" Then
    MsgBox "请输入订货数量!", vbCritical, "警告消息"
    Exit Sub

 End If

 If IsNull(订单追加!Label8) Or Label8 = "" Then
    MsgBox "请输入送货地址!", vbCritical, "警告消息"
    Exit Sub

 End If

 '====================================================================
'按语法应该按上面语句修改,这样不会有语法错误。
'但好像 "订单追加" 是记录集对象,没有看到连接数据库与连接数据表的语句,估计这个 "无效外部过程" 就是没有记录集对象的问题。
'====================================================================
If Not IsNull(特产名称_标签 & Label6 & Label8 & Label32 & Label34) Then
    strSQL = "insert into 销售订单 (顾客姓名,顾客电话,特产名称,订货数量,顾客地址)"
    strSQL = strSQL & "values('" & 订单追加!Label32 & " ','" & 订单追加!Label34 & " ', '" & 订单追加!特产名称_标签 & " ','" & 订单追加!Label6 & " ', '" & Me!Label18 & " ')"
    DoCmd.RunSQL strSQL
    MsgBox "您已成功下单!", vbOKOnly, "成功"

 End If
End Sub

由于不清楚你的具体设计,无法调试。
另外控件应该添加控件的属性,养成这样的习惯,因为有些控件没有默认属性。例如 Label8 应该是 Label8.Caption
如果 "订单追加" 是窗体名称,应该修改为 订单追加.Label32.Caption,其他都一样修改。

[此贴子已经被作者于2018-7-2 10:59编辑过]

1