vb操作access数据库
c# c++ vb 是可以互相调用的vb操作access数据库 的方法
首先要安装Office2003sp2
列子:读写数据库(.mdb)
1.创建 mdb
开始->所有程序->Office2003->Access 2003新建一个空数据库 保存位置C:\report.mdb
创建一个表格 并重新命名为test (操作和Excel类似)
注意 表格名称 和源代码要对应
2.注册数据源(代码中已经注册)和写代码
在新建工程时工具箱中是没有Adodc控件和MSHFlexGrid控件的,
我们必须点击菜单中的【工程】-【部件】,
在对话框中勾选“Microsoft ADO Data Control 6.0 (SP6)”和
“Microsoft Hierarchical FlexGrid Control 6.0 (SP4)”,
最后点击【确定】,这样Adodc控件和MSHFlexGrid控件就已经放置在工具箱中了
添加4个文本控件Text1 和 Text2和 Text3 和 Text4
添加一个按钮 ID修改成 “保存”
添加一个 List1
代码如下
Public conn As New ADODB.Connection '标记连接对象
Dim sql As String
Dim rs_maxcut As New ADODB.Recordset
Dim str As String
Dim aa As Double, bb As Double
Dim mbd As String
Dim 总页数 As Integer, 行数 As Integer, 列数 As Integer
Dim 内容(999, 999) As Double
Public Function cnn() As String
cnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mbd & ";Persist Security Info=True;Jet OLEDB:Database Password=123"
End Function
Private Sub 保存_Click()
writeDatabase
End
End Sub
Private Sub Form_Load()
mbd = "D:\UG_OPEN\ini\数据库.mdb"
conn.Open cnn '连接数据库
readdatabase
Me.Text1.Text = "行数" & 行数
Me.Text2.Text = "列数" & 列数
Me.Text3.Text = aa
Me.Text4.Text = bb
End Sub
Public Sub readdatabase() '读数据 (读数据和保存数据实际上是一样的操作方法)
Dim i As Long
sql = "select * from test"
rs_maxcut.Open sql, conn, adOpenKeyset, adLockPessimistic'打开记录集
总页数 = rs_maxcut.PageCount'页大小rs_maxcut.PageSize
行数 = rs_maxcut.RecordCount'行数 (排除标题)
列数 = rs_maxcut.Fields.Count - 1 '列数 (排除标题)
If rs_maxcut.EOF = False Then
i = 0
Do While rs_maxcut.EOF = False
i = i + 1
' If i = 0 Then str = rs_maxcut.Fields(0).Name & rs_maxcut.Fields(1).Name '读标
'第一行或者第一列的内容 他们属于标题 所以不管是行列我们都是重第二行或列开始的
If i = 1 Then aa = rs_maxcut.Fields(1).Value '除去标题后的,第1行第1列
If i = 2 Then bb = rs_maxcut.Fields(1).Value'除去标题后的,第1行第2列
'读所有内容到数组
For j = 1 To 列数
内容(i, j) = rs_maxcut.Fields(j).Value
Next
rs_maxcut.MoveNext '下一行
Loop
rs_maxcut.Close '关闭
List1.Clear
For i = 1 To 行数
For j = 1 To 列数
If j = 1 Then
str = 内容(i, j)
Else
str = str & " , " & 内容(i, j)
End If
Next
List1.AddItem str
Next
End If
End Sub
Public Sub writeDatabase() '保存数据(读数据和保存数据实际上是一样的操作方法)
On Error Resume Next
Dim i As Long
i = 0
conn.Open cnn '连接数据库
'sql = "select * from test"
rs_maxcut.Open sql, conn, adOpenKeyset, adLockPessimistic'打开记录集
If rs_maxcut.EOF = False Then
Do While rs_maxcut.EOF = False
i = i + 1
'不要去修改 第一行或者第一列的内容因为他们属于标题
If i = 1 Then rs_maxcut.Fields(1).Value = Val(Text3.Text) '编辑第2行第1列
If i = 2 Then rs_maxcut.Fields(1).Value = Val(Text4.Text) '编辑第2行第2列
rs_maxcut.MoveNext
Loop
rs_maxcut.Update
rs_maxcut.Close
End If
End Sub
页:
[1]