数据库中的表是不允许直接访问的,只有通过recordset对象对其进行浏览及操作。
一个recordset对象表示一个或多个数据库表中的集合,或者运行一次查询所得的记录结果。
记录集对象有3种类型:表类型(DbOpenTable)、动态集类型(DbOpenDynaset)、快照类型(DbOpenSnapshot)
Dim DAOmydb1 As Database
Dim DAOmyrs1 As Recordset
Dim addbln As Boolean
Private Sub cmdAdd_Click()
addbln = True
Controls_State True
txtfjh.Text = ""
txtjg.Text = ""
txtpz.Text = ""
txtbz.Text = ""
txtfjh.SetFocus
End Sub
Private Sub cmdCancel_Click()
Controls_State False
cmdDelete.Visible = False
Me.Height = 3585
End Sub
Private Sub cmdDelete_Click()
Set DAOmyrs1 = DAOmydb1.OpenRecordset("kf", dbOpenDynaset)
DAOmyrs1.FindFirst "房间号" Like " + chr(34) +txtfjh + chr(34) + """
DAOmyrs1.Delete
cmdMove_Click (2)
End Sub
Private Sub cmdExit_Click()
End
End Sub
Private Sub cmdModify_Click()
addbln = False
Me.Height = 4785
Controls_State True
cmdDelete.Visible = True
Set DAOmyrs1 = DAOmydb1.OpenRecordset("select * from kf order by 房间号", dbOpenSnapshot)
Call cmdMove_Click(0)
End Sub
Private Sub cmdMove_Click(Index As Integer)
With DAOmyrs1
Select Case Index
Case Is = 0
.MoveFirst
Case Is = 1
.MovePrevious
If .BOF Then
MsgBox "已经到第一条记录!"
.MoveFirst
End If
Case Is = 2
.MoveNext
If .EOF Then
MsgBox "已经到最后一条记录!"
.MoveLast
End If
Case Is = 3
.MoveLast
End Select
Call ViewData
lblRecordCount.Caption = "共" & .RecordCount & "条记录,第" & .AbsolutePosition + 1 & "条记录"
End With
End Sub
Private Sub cmdSave_Click()
If txtfjh.Text = "" Or Combo1.Text = "" Or Combo2.Text = "" Or txtjg.Text = "" Then
MsgBox "此项不允许为空"
Exit Sub
End If
If addbln = True Then
Set DAOmyrs1 = DAOmydb1.OpenRecordset("kf", dbOpenTable)
DAOmyrs1.AddNew
DAOmyrs1.Fields("房间号") = txtfjh.Text
DAOmyrs1.Fields("房间类型") = Combo1.Text
DAOmyrs1.Fields("房态") = Combo2.Text
DAOmyrs1.Fields("单价") = txtjg.Text
DAOmyrs1.Fields("配置") = txtpz.Text
DAOmyrs1.Fields("备注") = txtbz.Text
DAOmyrs1.Update
Else
Set DAOmyrs1 = DAOmydb1.OpenRecordset("kf", dbOpenDynaset)
DAOmyrs1.FindFirst "房间号" Like " + chr(34) +txtfjh + chr(34) + """
DAOmyrs1.Edit
DAOmyrs1.Fields("房间号") = txtfjh.Text
DAOmyrs1.Fields("房间类型") = Combo1.Text
DAOmyrs1.Fields("房态") = Combo2.Text
DAOmyrs1.Fields("单价") = txtjg.Text
DAOmyrs1.Fields("配置") = txtpz.Text
DAOmyrs1.Fields("备注") = txtbz.Text
DAOmyrs1.Update
cmdDelete.Visible = False
Me.Height = 4785
End If
Controls_State False
End Sub
Private Sub Form_Load()
Set DAOmydb1 = Workspaces(0).OpenDatabase(App.Path & "\db_kfgl.mdb")
Controls_State False
Combo1.AddItem "普房"
Combo1.AddItem "标准房"
Combo1.AddItem "双人房"
Combo1.AddItem "套房"
Combo2.AddItem "空房"
Combo2.AddItem "入住"
Combo2.AddItem "维修"
Combo2.AddItem "打扫中"
Me.Height = 3585
End Sub
Sub Controls_State(bVal As Boolean)
cmdAdd.Enabled = Not bVal
cmdModify.Enabled = Not bVal
cmdSave.Enabled = bVal
cmdCancel.Enabled = bVal
txtfjh.Enabled = bVal
Combo1.Enabled = bVal
Combo2.Enabled = bVal
txtjg.Enabled = bVal
txtpz.Enabled = bVal
txtbz.Enabled = bVal
End Sub
Private Sub txtfjh_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then Combo1.SetFocus
End Sub
Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then Combo2.SetFocus
End Sub
Private Sub Combo2_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then txtjg.SetFocus
End Sub
Private Sub txtjg_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then txtpz.SetFocus
End Sub
Private Sub txtpz_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then txtbz.SetFocus
End Sub
Sub ViewData()
If DAOmyrs1.Fields("房间号") <> "" Then txtfjh.Text = DAOmyrs1.Fields("房间号")
If DAOmyrs1.Fields("房间类型") <> "" Then Combo1.Text = DAOmyrs1.Fields("房间类型")
If DAOmyrs1.Fields("房态") <> "" Then Combo2.Text = DAOmyrs1.Fields("房态")
txtjg.Text = DAOmyrs1.Fields("单价")
If DAOmyrs1.Fields("配置") <> "" Then txtpz.Text = DAOmyrs1.Fields("配置") Else txtpz.Text = ""
If DAOmyrs1.Fields("备注") <> "" Then txtbz.Text = DAOmyrs1.Fields("备注") Else txtbz.Text = ""
End Sub