⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmdao.frm

📁 VB实现各种方式连接数据库
💻 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 + -