VB中数据库的建立和前面一样,只是没有通过属性窗口来连接记录源
我们设Combo1 的名称为cmbField,Combo2为cmbname,Text1为txtno,Text2为txtname,Text3为txtjd,Text4为txtwd,添加的按钮为cmdadd,删除为cmddel,修改为cmdedit,清空为cmdclear
Private Sub cmbField_Click()
cmbName.Clear '清空cmbname
Adodc1.RecordSource = "select * from VOR台地理位置"
Adodc1.Refresh
Do While Not Adodc1.Recordset.EOF
cmbName.AddItem Adodc1.Recordset.Fields(cmbField.Text)
Adodc1.Recordset.MoveNext
Loop
cmbName.Text = cmbName.List(0)
End Sub
Private Sub cmbName_Click()
Dim condition
condition = Trim(cmbField.Text) 'trim 取出输入字符串中的空格
If Adodc1.Recordset.Fields(condition).Type = 202 Then '被选择的字段类型是文本型
Adodc1.RecordSource = "select * from VOR台地理位置 where " & condition & "= '" & cmbName.Text & "'"
Else '被选择的字段类型不是文本型
Adodc1.RecordSource = "select * from VOR台地理位置 where " & condition & " = " & cmbName.Text
End If
Adodc1.Refresh
txtno.Text = Adodc1.Recordset.Fields("VOR台编号") '将字段值在文本框中显示
txtname.Text = Adodc1.Recordset.Fields("所处位置")
txtjd.Text = Adodc1.Recordset.Fields("经度")
txtwd.Text = Adodc1.Recordset.Fields("纬度")
End Sub
Private Sub cmdadd_Click()
On Error GoTo errorhandler: '如果出现主索引重复的错误,则跳转到错误处理的部分
If txtno.Text <> "" Then
Adodc1.Recordset.AddNew '将文本框中用户输入的各个字段的取值填入相应字段中
Adodc1.Recordset.Fields("VOR台编号") = txtno.Text
Adodc1.Recordset.Fields("所处位置") = txtname.Text
Adodc1.Recordset.Fields("经度") = Val(txtjd.Text)
Adodc1.Recordset.Fields("纬度") = Val(txtwd.Text)
Adodc1.Recordset.Update
cmbName.Clear
Adodc1.RecordSource = "select * from VOR台地理位置"
Adodc1.Refresh
Do While Not Adodc1.Recordset.EOF
cmbName.AddItem Adodc1.Recordset.Fields(1)
Adodc1.Recordset.MoveNext
Loop
cmbField_Click
cmdclear_Click
Else
MsgBox "VOR台编号是主索引字段,不能为空", , "错误提示"
End If
Exit Sub
errorhandler: MsgBox "您添加的VOR台编号已经存在", , "错误提示"
End Sub
Private Sub cmdclear_Click()
txtno.Text = ""
txtname.Text = ""
txtjd = ""
txtwd = ""
End Sub
Private Sub cmddel_Click()
If txtname.Text <> "" Then '根据货物名称删除记录
Adodc1.RecordSource = "select * from VOR台地理位置 where VOR台编号 = '" & cmbName.Text & "'"
Adodc1.Refresh
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
cmbName.Clear
cmbField_Click
cmdclear_Click
End If
End Sub
Private Sub cmdedit_Click()
On Error GoTo errorhandler: '如果出现主索引重复的错误,则跳转到错误处理的部分
If txtno.Text <> "" Then
'Adodc1.RecordSource = "select * from VOR台地理位置 where VOR台编号 = '" & txtno.Text & "'"
'Adodc1.RecordSource = "select * from VOR台地理位置 where VOR台编号 = '" & txtno.Text & "'"
' Adodc1.Refresh
Adodc1.Recordset.Fields("VOR台编号") = txtno.Text
Adodc1.Recordset.Fields("所处位置") = txtname.Text
Adodc1.Recordset.Fields("经度") = Val(txtjd.Text)
Adodc1.Recordset.Fields("纬度") = Val(txtwd.Text)
cmdadd_Click
Else
MsgBox "VOR台编号是主索引自动,不能为空", , "错误提示"
End If
Exit Sub
errorhandler: MsgBox "VOR台编号是主索引自动,不能重复", , "错误提示"
End Sub
Private Sub Form_Load()
Dim i As Integer
Adodc1.RecordSource = "select * from VOR台地理位置" '连接数据库表
Adodc1.Refresh
cmbField.Clear '清空下拉列表
For i = 0 To Adodc1.Recordset.Fields.Count - 1 '将每个字段的名字作为一个项目,添加到cmbfields中
cmbField.AddItem Adodc1.Recordset.Fields(i).Name
Next i
cmbField.Text = cmbField.List(0) '默认显示第一项
cmbName.Text = Adodc1.Recordset.Fields(0)
txtno.Text = Adodc1.Recordset.Fields(0)
txtname.Text = Adodc1.Recordset.Fields(1)
txtjd.Text = Adodc1.Recordset.Fields(2)
txtwd.Text = Adodc1.Recordset.Fields(3)
'cmbName.Clear
'txtno.Text = ""
'txtname.Text = ""
'txtjd.Text = ""
'txtwd.Text = ""
End Sub