| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1418 人关注过本帖, 1 人收藏
标题:一段ADO连接access数据库添加数据的代码,不知道哪错了。
取消只看楼主 加入收藏
sankes
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2009-7-19
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:6 
一段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
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
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
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
sankes
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2009-7-19
收藏
得分:0 
一语惊醒梦中人。subMain 非常感谢你
2009-08-19 22:26
快速回复:一段ADO连接access数据库添加数据的代码,不知道哪错了。
数据加载中...
 
   



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

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