📄 frmdao.frm
字号:
VERSION 5.00
Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "msflxgrd.ocx"
Begin VB.Form frmDAO
Caption = "DAO Test"
ClientHeight = 3060
ClientLeft = 60
ClientTop = 345
ClientWidth = 7095
LinkTopic = "Form1"
ScaleHeight = 3060
ScaleWidth = 7095
StartUpPosition = 3 '窗口缺省
Begin MSFlexGridLib.MSFlexGrid MSFlexGrid1
Height = 2895
Left = 120
TabIndex = 6
Top = 120
Width = 3795
_ExtentX = 6694
_ExtentY = 5106
_Version = 393216
End
Begin VB.CommandButton cmdOleDbConn
Caption = "OleDb连接"
Height = 375
Left = 4080
TabIndex = 5
Top = 120
Width = 1155
End
Begin VB.CommandButton cmdODBCConn
Caption = "ODBC连接"
Height = 375
Left = 5580
TabIndex = 4
Top = 120
Width = 1155
End
Begin VB.CommandButton cmdODBCAdd
Caption = "ODBC新增"
Height = 375
Left = 5580
TabIndex = 3
Top = 600
Width = 1155
End
Begin VB.CommandButton cmdOleDbAdd
Caption = "OleDb新增"
Height = 375
Left = 4080
TabIndex = 2
Top = 600
Width = 1155
End
Begin VB.CommandButton cmdOleDbDelete
Caption = "OleDb删除"
Height = 375
Left = 4080
TabIndex = 1
Top = 1080
Width = 1155
End
Begin VB.CommandButton cmdODBCDelete
Caption = "ODBC删除"
Height = 375
Left = 5580
TabIndex = 0
Top = 1080
Width = 1155
End
End
Attribute VB_Name = "frmDAO"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'记录集总行数属性无效,可以遍历统计行数
'本地数据库建立ODBC,连接无效;可以采用直连本地数据库文件的方式
Option Explicit
Dim ws As Workspace
Dim dbUser As Database
Dim rs As DAO.Recordset
Private Sub cmdODBCAdd_Click()
rs.AddNew
rs(0) = 3
rs(1) = "bobo"
rs.Update
MsgBox "数据更新!"
cmdODBCConn_Click
End Sub
Private Sub cmdODBCConn_Click()
MSFlexGrid1.Clear
'ODBC连接ORACLE数据库
Set ws = DBEngine.Workspaces(0)
Dim strConnection As String
strConnection = "DSN=midb;UID=sde;PWD=sde"
Set dbUser = ws.OpenDatabase("", True, False, strConnection)
Set rs = dbUser.OpenRecordset("select * from stu")
'数据加载
If rs.RecordCount = 0 Then Exit Sub
Dim rowcount As Integer
rs.MoveFirst
rowcount = 0
Do While Not rs.EOF
rowcount = rowcount + 1
rs.MoveNext
Loop
MSFlexGrid1.Rows = rowcount + 1
MSFlexGrid1.Cols = rs.Fields.Count + 1
Dim i As Integer
For i = 0 To rs.Fields.Count - 1
MSFlexGrid1.TextMatrix(0, i + 1) = rs.Fields(i).Name
Next
rs.MoveFirst
For i = 1 To rowcount
Dim j As Integer
For j = 0 To rs.Fields.Count - 1
MSFlexGrid1.TextMatrix(i, j + 1) = rs(j)
Next j
rs.MoveNext
Next i
End Sub
Private Sub cmdODBCDelete_Click()
If rs Is Nothing Then Exit Sub
rs.MoveLast
rs.Delete
MsgBox "删除数据"
cmdODBCConn_Click
End Sub
Private Sub cmdOleDbAdd_Click()
rs.AddNew
rs(0) = 2
rs(1) = "bobo"
rs.Update
MsgBox "数据更新!"
cmdOleDbConn_Click
End Sub
'如果用DAO,搭配DBGrid控件(不直接支持recordset数据源,不支持运行时设置数据源)。
' DAO --DBGrid?MSFlexGrid
' ADO --DataGrid?MSHFlexGrid
Private Sub cmdOleDbConn_Click()
MSFlexGrid1.Clear
'DAO直连数据库文件
Set dbUser = OpenDatabase("D:\work\FrmTest\db.mdb")
Set rs = dbUser.OpenRecordset("STU")
'数据加载
If rs.RecordCount = 0 Then Exit Sub
MSFlexGrid1.Rows = rs.RecordCount + 1
MSFlexGrid1.Cols = rs.Fields.Count + 1
Dim i As Integer
For i = 0 To rs.Fields.Count - 1
MSFlexGrid1.TextMatrix(0, i + 1) = rs.Fields(i).Name
Next
i = 1
Do While Not rs.EOF
Dim j As Integer
For j = 0 To rs.Fields.Count - 1
MSFlexGrid1.TextMatrix(i, j + 1) = rs(j).Value
Next j
i = i + 1
rs.MoveNext
Loop
End Sub
Private Sub cmdOleDbDelete_Click()
If rs Is Nothing Then Exit Sub
rs.MoveLast
rs.Delete
MsgBox "删除数据"
cmdOleDbConn_Click
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -