标题:一段ADO连接access数据库添加数据的代码,不知道哪错了。
只看楼主
sankes
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2009-7-19
结帖率:100%
已结贴  问题点数:20 回复次数:10 
一段ADO连接access数据库添加数据的代码,不知道哪错了。
Dim sc As Integer
If Not Testtxt(txtNo.Text) Or Testtxt(txtName.Text) Or Testtxt(txtSex.Text) Or Testtxt(txtBookTime.Text) Or Testtxt(txtTel.Text) Or Testtxt(txtEnrolTime.Text) Then
        MsgBox "带 * 号为必填项", vbOKOnly + vbExclamation, "警告"
        txtNo.SetFocus
        Exit Sub
    End If
    sc = MsgBox("确实要添加这条记录吗?", vbOKCancel, "提示信息")
   
    If sc = 1 Then
   
     Dim conn As New ADODB.Connection

      Dim rs As New ADODB.Recordset
      
      Dim Str1 As String
      
      Dim Str2 As String
      
      Dim Str3 As String
      
      Str1 = "Provider=Microsoft.Jet.OLEDB.4.0;"
      
         Str2 = "Data Source=/data.mdb;"

      
      Str3 = "Jet OLEDB:Database Password="

      conn.Open Str1 & Str2 & Str3

      strSQL = "select * from 预约者"

      rs.Open strSQL, conn, 3, 3

      rs.AddNew
      rs!编号 = txtNo.Text
      rs!姓名 = txtName.Text
      rs!性别 = txtSex.Text
      rs!所在学院 = txtCollege.Text
      rs!所在专业 = txtSpeciality.Text
      rs!联系电话 = txtTel.Text
      rs!预约时间 = txtBookTime.Text
      rs!登记时间 = txtEnrolTime.Text
      rs!备注 = txtRemark.Text
      rs.Update
      rs.Close
      conn.Close

      MsgBox ("添加记录成功!")

      Adodc1.Refresh
      End If


       txtNo.Text = ""
        txtName.Text = ""
        txtSex.Text = ""
        txtCollege.Text = ""
       txtSpeciality.Text = ""
        txtTel.Text = ""
        txtBookTime.Text = ""
        txtEnrolTime.Text = ""
        txtRemark.Text = ""
 
End Sub


运行后,总是提示“带 * 号为必填项”,而不会执行下面的语句。
搜索更多相关主题的帖子: ADO 数据库 
2009-08-19 16:21
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
得分:0 
很显然是IF语句中的条件满足了其中之一呀

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2009-08-19 19:00
sankes
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2009-7-19
得分:0 
所有相关的textbox控件我都已经添入了数字~!还是会提示“带 * 号为必填项”,
2009-08-19 20:44
sankes
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2009-7-19
得分:0 
我再试了一下,现在不提是任何信息了。直接没有反应。看来是过了第一个IF条件语句。

但是没有吧数据写入数据库。
2009-08-19 20:47
subMain
Rank: 5Rank: 5
等 级:职业侠客
帖 子:50
专家分:357
注 册:2009-8-17
得分:0 
第一个IF貌似有问题。。

Testtxt函数是不是做判断用的函数?

如果通过判断返回真,否则返回假的话可以这样做:
If Not (Testtxt(txtNo.Text) _
    And Testtxt(txtName.Text) _
    And Testtxt(txtSex.Text) _
    And Testtxt(txtBookTime.Text) _
    And Testtxt(txtTel.Text) _
    And Testtxt(txtEnrolTime.Text)) Then

如果通过判断返回假,否则返回真的话可以这样做:
If Testtxt(txtNo.Text) _
    Or Testtxt(txtName.Text) _
    Or Testtxt(txtSex.Text) _
    Or Testtxt(txtBookTime.Text) _
    Or Testtxt(txtTel.Text) _
    Or Testtxt(txtEnrolTime.Text) Then

学习VB好多天
2009-08-19 21:03
sankes
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2009-7-19
得分:0 
Testtxt是测试textbox是否为空。如果空则返回假。

如果把OR换成and的话,就直接存取数据,而不判断是否存在textbox是否有空。
2009-08-19 21:15
sankes
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2009-7-19
得分:0 
找到解决的办法了。
 
Public Function Testtxt(txt As String) As Boolean
    If Trim(txt) = "" Then
        Testtxt = False
    Else
        Testtxt = True
    End If
End Function
 
主要是这里错了。
 
把它改成
Public Function Testtxt(txt As String) As Boolean
    If Trim(txt) = "" Then
        Testtxt = True
    Else
        Testtxt = False
    End If
End Function
 
然后再去掉前面程序if not中的not就正确执行了。

可是我还是有点不太明白。疑问说起来很费劲,算了。不说了。结贴
2009-08-19 21:41
subMain
Rank: 5Rank: 5
等 级:职业侠客
帖 子:50
专家分:357
注 册:2009-8-17
得分:0 
晕,,全颠倒了。。

其实一开始是你的NOT写错了,,没那样写的。。
你这样一改或许没问题了,但Testtxt函数就不好。

算了,,结去吧。。

[ 本帖最后由 subMain 于 2009-8-19 21:46 编辑 ]

学习VB好多天
2009-08-19 21:45
sankes
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2009-7-19
得分:0 
Public Function Testtxt(txt As String) As Boolean  
    If Trim(txt) = "" Then  
        Testtxt = False  
    Else  
        Testtxt = True  
    End If  
End Function  
按照这个定义的话,
 
如果依然执行if not,那就是说明当testtxt不为真是,执行MSGbox。逻辑上应该上没错啊。可是为什么那样写就不对呢。会造成无论textbox里有没有数据,都执行msgbox。

相当不懂。有人可以解答一下嘛?
2009-08-19 21:47
subMain
Rank: 5Rank: 5
等 级:职业侠客
帖 子:50
专家分:357
注 册:2009-8-17
得分:20 
不知道你有没有注意:
Not False And True



Not (False And True)

是不一样的。。

学习VB好多天
2009-08-19 21:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-283207-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024436 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved