回 帖 发 新 帖 刷新版面

主题:[求助] 学习编写数据库,几个问题请教前辈。

附件为我摸索着编写的一个单位应用软件,其中运用到了数据库,由于刚开始学习数据库,遇到了几个问题。
1.客户窗口中在增加新客户名称时如何判断相同记录已存在?我试着编写了一下,但是不能输入任何新纪录,如果去除我写的如下语句,可输入新纪录,但是会发生重复纪录的现象:
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Find "客户名称= ' " & Text1.Text & " ' "
If Not Adodc1.Recordset.EOF Then
MsgBox "此记录已存在!", , "提示窗口"
Else




End If


2.如何编写客户窗口中的“结束退出”键的代码,使之只退出“客户窗口”,保留主界面,并且主界面的菜单按钮还继续有效(也就是说“客户”等按钮有效)?

谢谢各位前辈。

回复列表 (共4个回复)

沙发

你的第二个问题相对简单,先说了。在哪里写上代码:UnLoad Me就可以了。
你的第一个问题,从代码上看我也一头雾水,试图运行你的代码不能加载agentctl.dll

板凳

数据源还要用户名和密码

3 楼

1、  Adodc1.Recordset.AddNew
没有添加内容
2、之所以在不存在记录时也弹出
MsgBox "此记录已存在!", , "提示窗口"
原因是因为
If Not Adodc1.Recordset.EOF Then
语句中Adodc1.Recordset.EOF值为“假”(也就是说当前指针不在结尾处),
Not Adodc1.Recordset.EOF 为真,而导致的。
事实上,只要给你的数据库客户表中预先写入一个记录,就可以避免这种情况。

4 楼


谢谢各位前辈,我使用了自己的办法,貌似解决了问题。


Private Sub Command1_Click()  '添加框内唯一一个“添加”按钮

  On Error Resume Next
  If Text1.Text = "" Or Text2.Text = "" Then
     MsgBox "请填写完整!", vbOKOnly + vbInformation, "提示"
     Text1.SetFocus   '使控件获得焦点
     Exit Sub
  End If



If Not Adodc1.Recordset.EOF And Not Adodc1.Recordset.BOF Then
Adodc1.Recordset.MoveFirst
End If
Do While Not Adodc1.Recordset.EOF
 
 If Adodc1.Recordset.Fields("客户名称") = Trim(Text1.Text) Then
   MsgBox "请勿添加相同的数据", vbInformation + vbOKOnly
    Text1.Text = ""
        Text2.Text = ""

    Text1.SetFocus
   Exit Sub
 End If
 Adodc1.Recordset.MoveNext
Loop
    Adodc1.Recordset.AddNew
    Adodc1.Recordset.Fields("客户名称").Value = Trim(Text1.Text)
    Adodc1.Recordset.Fields("简称").Value = Trim(Text2.Text)
    Adodc1.Recordset.Update
    Adodc1.Refresh
    MsgBox "数据添加成功", vbInformation + vbOKOnly
    Text1.Text = ""
    Text2.Text = ""
    Text1.SetFocus
End Sub

我来回复

您尚未登录,请登录后再回复。点此登录或注册