Private Sub Command1_Click()
Dim rs As New ADODB.Recordset
Set rs = dbe.rskc
answer = MsgBox("sure?", vbOKCancel, "sure")
If answer = vbOK Then
if len(text1.text)=0 then msgbox("on",vbCritical,"error")End If
Exit Sub 
With rs
.AddNew
.Fields("name").Value = Text1.Text
.Fields("sex").Value = Text2.Text
.Fields("age").Value = Text3.Text
.Fields("work").Value = Text4.Text
.Update
End With
End If
End Sub错误,缺少:=

解决方案 »

  1.   

    if len(text1.text)=0 then msgbox("on",vbCritical,"error")
    改为
    if len(text1.text) = 0 then msgbox "on",vbcritical, "error"
      

  2.   

    楼主,这样的问题自己查查就可以Private Sub Command1_Click() 
    Dim rs As New ADODB.Recordset 
    Set rs = dbe.rskc 
    answer = MsgBox("sure?", vbOKCancel, "sure") 
    If answer = vbOK Then 
        'if len(text1.text)=0 then msgbox "on",vbCritical,"error"
        if len(text1.text)=0 then 
            msgbox "on",vbCritical,"error"
        End If
    End If 
    Exit Sub 
    With rs 
    .AddNew 
    .Fields("name").Value = Text1.Text 
    .Fields("sex").Value = Text2.Text 
    .Fields("age").Value = Text3.Text 
    .Fields("work").Value = Text4.Text 
    .Update 
    End With 
    End If 
    End Sub 
      

  3.   

    if len(text1.text)=0 then msgbox("on",vbCritical,"error")End If if then 语句在单行内能解决问题就不用 End If多行才用 End Ifbasic 采用 if then ------ End If 划定语句块的范围
    同C、Java里的一对花括号{}一样
      

  4.   

    if len(text1.text)=0 then msgbox("on",vbCritical,"error")End If if then 语句在单行内能解决问题就不用 End If多行才用 End Ifbasic 采用 if then ------ End If 划定语句块的范围
    同C、Java里的一对花括号{}一样
      

  5.   

    End If 前面加换行,它对应的是 If answer = vbOK Then 
      

  6.   

    做下面两个操作
    1.end if 前换行
    2.把msgbox的括号去掉
      

  7.   

    2楼的写法正确。这是答在点中,还有,虽然msgbox "on",vbCritical,"error"可以提示错误,但当TEXT1是空值,TEXT2-TEXT4有值的时候,还是能增加记录到数据库,要怎样写才可以不添加到数据库
      

  8.   

    基本语句没掌握!
    在 msgbox 语句下面面加 Exit Sub
      

  9.   

    把Exit Sub 放倒msgbox后面,end if前面
      

  10.   

    随便说一下,二楼的答案好像多了一个end if吧
      

  11.   

    if len(text1.text)=0 then msgbox("on",vbCritical,"error")End If 
    Exit Sub 
    上面的退出过程应该在if语句里面吧。不然就算你把endif去掉了,那个退出过程总要运行。你那还不是一个效果,就是多了个提示么。
    改为
    if len(text1.text)=0 then
     msgbox "on",vbCritical,"error"
     Exit Sub 
    End If 
      

  12.   

    晕,我是问第二个问题.但当TEXT1是空值,TEXT2-TEXT4有值的时候,还是能增加记录到数据库,要怎样写才可以不添加到数据库 
      

  13.   


    Private Sub Command1_Click()
        Dim rs As New ADODB.Recordset
        Set rs = dbe.rskc
        answer = MsgBox("sure?", vbOKCancel, "sure")
        If answer = vbOK Then
            If Len(text1.Text) = 0 Then
                MsgBox "on", vbCritical, "error"
                Exit Sub
            Else
                With rs
                    .AddNew
                    .Fields("name").Value = text1.Text
                    .Fields("sex").Value = Text2.Text
                    .Fields("age").Value = Text3.Text
                    .Fields("work").Value = Text4.Text
                    .Update
                End With
            End If
        End If
    End Sub
    你的代码太乱了,你看看是不是这样的。
    exit sub这一句发错位置了吧,要不然就像楼上有位说的一样,只是增加了一个msgbox,有错与否都要执行数据的添加
      

  14.   

    是这样:
    Private Sub Command1_Click()
        Dim rs As New ADODB.Recordset
        Set rs = dbe.rskc
        answer = MsgBox("sure?", vbOKCancel, "sure")
        If answer = vbOK Then
            If Len(text1.Text) = 0 Then
                MsgBox "on", vbCritical, "error"
            elseif len(text2.text)= 0 then
               msgbox "on",vbcritical,"error"
                Exit Sub
             end if
                    Else
                With rs
                    .AddNew
                    .Fields("name").Value = text1.Text
                    .Fields("sex").Value = Text2.Text
                    .Fields("age").Value = Text3.Text
                    .Fields("work").Value = Text4.Text
                    .Update
                End With
            End If
      End Sub还是:Private Sub Command1_Click()
        Dim rs As New ADODB.Recordset
        Set rs = dbe.rskc
        answer = MsgBox("sure?", vbOKCancel, "sure")
        If answer = vbOK Then
            If Len(text1.Text) = 0 Then
                MsgBox "on", vbCritical, "error"
            elseif len(text2.text)= 0 then
               msgbox "on",vbcritical,"error"
                Exit Sub
         
                    Else
                With rs
                    .AddNew
                    .Fields("name").Value = text1.Text
                    .Fields("sex").Value = Text2.Text
                    .Fields("age").Value = Text3.Text
                    .Fields("work").Value = Text4.Text
                    .Update
                End With
            End If
           end if
      End Sub
      那个end if 放在哪里?
      

  15.   

    Private Sub Command1_Click()
    Dim rs As New ADODB.Recordset
    Set rs = dbe.rskc
    answer = MsgBox("sure?", vbOKCancel, "sure")
    If answer = vbOK Then
    If Len(Text1.Text) = 0 Then
    MsgBox "no", vbCritical, "error"
    ElseIf Len(Text2.Text) = 0 Then
    MsgBox "f", vbCritical, "error"
    Exit SubElse
    With rs
    .AddNew
    .Fields("name").Value = Text1.Text.Update
    End With
    End If
    End If
    End Sub这样写就实现了,但是出现了一个问题,text1和TEXT2都有内容时,添加到数据库的只有TEXT1,而TEXT2里面的内容就添加不进
      

  16.   


    你不是只用了.Fields("name").Value = Text1.Text 么...
      

  17.   


    Private Sub Command1_Click()
    Dim rs As New ADODB.Recordset
    Set rs = dbe.rskc
    answer = MsgBox("sure?", vbOKCancel, "sure")
    If answer = vbOK Then
    If Len(Text1.Text) = 0 Then
    MsgBox "no", vbCritical, "error"
    ElseIf Len(Text2.Text) = 0 Then
    MsgBox "f", vbCritical, "error"
    Exit Sub
    Else
    With rs
    .AddNew
    .Fields("name").Value = Text1.Text
    .Fields("sex").Value = Text2.Text
    .Update
    End With
    End If
    End If
    End Sub这里的exit sub要不要的结果都是一样的,不要也可以
      

  18.   

    基本不是这个问题,不是加不加Exit Sub
    ,连问题都找不出还说别人基本语句没掌握
      

  19.   

    11 楼之前你那个程序段中有 else 分支?