VB语言 如何检索mdb数据库

VB语言 如何检索mdb数据库,第1张

首先用VB程序连接数据库,然后用sql语句查询,这些基础 *** 作百度上有很多,可搜索VB *** 作Access数据库。

建议对该数据库结构做一定了解,可用Microsoft的ACCESS打开该数据库,查看其表和字段信息,然后在程序中写出对应的SQL语句查询。

也可以盲检索,用程序获取表列表,再遍历每一个表,对其所有字段进行匹配,对于你稍难。

附上一句SQL语句仅供参考:

"Select  From TableName Where fieldname1 Like '%" + Text1Text + "%'" Or fieldname2 Like '%" + Text1Text + "%'"

工程->引用Microsoft ActiveX Data Objects 2x Library

'工程->引用Microsoft ADO Ext 2x for DDL and Security

'在窗体上有1个DataGrid、6个CommandButton、3个TextBox

Option Explicit

Public mCnnString As String

Dim mRst As New ADODBRecordset

Private Sub Command1_Click() '1在数据库mdb1上创建 "ID" "用户名" "密码" 字段的UserPassWord表

Dim mTbl As New Table

Dim mIdx As New ADOXIndex

Dim mCat As New ADOXCatalog

' 打开目录。

mCatActiveConnection = "Provider=MicrosoftJetOLEDB40;Data Source=" & AppPath & "\db1mdb" & ";Persist Security Info=False"

' 定义表并将其追加到库中

mTblName = "UserPassWord"

mTblParentCatalog = mCat

mTblColumnsAppend "ID", adVarWChar

mTblColumnsAppend "用户名", adVarWChar

mTblColumnsAppend "密码", adVarWChar

mCatTablesAppend mTbl

' 定义多列索引

mIdxName = "MultiColIdx"

mIdxColumnsAppend "ID"

' 将索引追加到表上

mTblIndexesAppend mIdx

End Sub

Private Sub Command2_Click() '2添加 "01" "小明" "999999" 到相应字段中的数据库文件中

Dim mCon As New ADODBConnection

mConCursorLocation = adUseClient

mConOpen mCnnString

mConExecute "Insert Into UserPassWord Values('" & "01'," & " '" & "小明" & "'," & " '999999" & "')"

mConClose

Set mCon = Nothing

End Sub

Private Sub Command3_Click() '3删除指定ID(Text1Text)整行的数据行

Dim mCon As New ADODBConnection

mConCursorLocation = adUseClient

mConOpen mCnnString

mConExecute "Delete From UserPassWord Where ID = '" & Trim(Text1Text) & "'"

mConClose

Set mCon = Nothing

End Sub

Private Sub Command4_Click() '4根据用ID(Text2Text)查询数据库

If mRstState = adStateOpen Then mRstClose

mRstCursorLocation = adUseClient

mRstOpen "Select From UserPassWord Where ID = '" & Trim(Text2Text) & "'", mCnnString, adOpenStatic, adLockOptimistic, adCmdText

Set DataGrid1DataSource = mRst

End Sub

Private Sub Command5_Click() '4根据用户名(Text3Text)查询数据库

If mRstState = adStateOpen Then mRstClose

mRstCursorLocation = adUseClient

mRstOpen "Select From UserPassWord Where 用户名 = '" & Trim(Text3Text) & "'", mCnnString, adOpenStatic, adLockOptimistic, adCmdText

Set DataGrid1DataSource = mRst

End Sub

Private Sub Command6_Click() '5清空数据表,保留字段

Dim mCon As New ADODBConnection

mConCursorLocation = adUseClient

mConOpen mCnnString

mConExecute "Delete From UserPassWord Where True"

mConClose

Set mCon = Nothing

End Sub

Private Sub Form_Load()

mCnnString = "Provider=MicrosoftJetOLEDB40;Data Source=" & AppPath & "\db1mdb" & ";Persist Security Info=False" '连接字符串

End Sub

Private Sub Form_Unload(Cancel As Integer) '退出时候释放mRst对象

If mRstState = adStateOpen Then

mRstClose

Set mRst = Nothing

End If

End Sub

由于VB本身并不带有可以访问数据库的类,所以我们需要引用一个包含能访问数据库的类来使用数据库这里我们采用ADODB,相比DAO和能访 问数据库的API来说,它比DAO更灵活,更强大;而比起API,它更简单易用,更适合初学者而Access数据库比起SQL,也相对简单了很多,且能 够满足中小型应用程序的需要,所以我们在使用数据库时,选择了Access 就像使用文本文件来存储数据一样,我们需要先设计好数据结构,只不过在设计Access数据库的结构时,我们需要用到其它的程序来进行详细的规划建议采用的程序是office中的Access或VB自带的VISDATA 当数据库设计好了以后,我们可以开始数据库编程了 首先,我们需要引用ADO具体的方法是,在工程 -- 引用 中,找到Microsoft ActiveX Data Object Library,这里的是指的时ADO的版本号,一般来说,应用程序或ActiveX控件都具有向下兼容性,所以我们尽可能选择比较新的版本以确 保程序在能识别旧版本Access的同时,也能识别较新版本的Access 然后我们需要在程序中创建一个对象就好比我们在窗体上添加一个FileBox才能看到文件名一样,只有创建了ADO对象,我们才能够访问数据库常用的对象有两个,Connection和Recordset 创建这两个对象的具体方法是: 1在引用后,使用New关键字,如 Private Conn As New ADODBConnection Private Reco As New ADODBRecordset 2在没引用时,用CreateObject创建对象: Dim Conn,Reco Set Conn = CreateObject(ADODBConnection) Set Reco = CreateObject(ADODBRecordset) 创建了对象之后,下一步我们要做的就是打开数据库了 先看下面的代码,可以成功的打开数据库 Connopen Provider=MicrosoftJetOLEDB40;Data Source=D:Mainmdb 这句代码打开了D盘中的Mainmdb这个数据库 ConnectionOpen方法的第一个参数是连接代码,它将传递给系统的数据库引擎前半部分 Provider=MicrosoftJetOLEDB40,它表示了数据库的类型不同的数据库可能会不同后半句 Source=d:mainmdb它表示了数据库所在的绝对路径 打开数据库之后,还要打开表假如数据库中有一个表,表名为Users,字段有两个,一个为用户名,一个为密码那么看以下代码 1想返回Users中,[用户名]为去年烟花的[密码] Recordsetopen Select 密码 From Users Where 用户名='去年烟花',Connection,1,1 之后我们就可以把用户输入的密码进行比较,看是否允许登录 If Recordseteof and Recordsetbof then Msgbox 用户不存在!,16 Else If PassWord =Recordset(密码)value then msgbox 登录成功!,64 Else msgbox 密码错误!,32 End If End If RecordsetClose 2假设Admin已经成功登录系统,我们想把所有的用户名和密码都显示出来 Recordsetopen Select From Users,Connection,1,1 这时,表已经被打开,我们就用以下代码把它显示出来 Do whlie Not Recordseteof Print 用户名: & Recordset(用户名)value & 密码: & Recordset(密码)value RecordsetMoveNext Loop RecordsetClose 由以上代码示例可以看出,打开表时,可以只打开其中的一个字段,也可以打开所有第一个参数是SQL语句 Select [字段名] From 表名 [Where 条件] 这里的条件可以省略且字段名也可以用来代替所有字段 需要注意的是,如果你用(1)中的方法打开,那么(2)后面显示的代码就不能再用在(1)中因为(1)里并没有打开[用户名]字段,所以这一句Recordset(密码)就没有值存在,还有可能出错 后面的条件,可以用=、>、<等运算符比如 Where ID > 32(这里假设[ID]为数字型) 这是打开的部分第二个很重要的部分就是查询记录 数据库它并不是把所有记录全部放到一个变量中备用的而是以当前记录的形式来返回一个值所以我们想从中找到有用的信息,就必须要对信息进行定位/筛选 定位: 移动到下一条 RecordsetMoveNext 移动到上一条 RecordsetMovePrevious 移动到最后一条 RecordsetMoveLast 移动到第一条 RecordsetMoveFrist 移动到某一条 RecordsetMove Number 筛选: RecordsetFind 条件 如:[用方法(2)打开表之后] Private Sub Command1_Click() RecordsetFind 用户名= & text1text If RecordsetEof <> True Then Msgbox 该用户的密码是: & Recordset(密码)value,64 Else Msgbox 未找到该用户的资料!,16 End If End Sub MoveNext 只有当Eof不为True时,才可用,否则发生错误而MovePrevious刚是Bof不为True时 而只要Eof 和 Bof中有一个不为真时,也就是说只要有一条记录时,它就可以使用 Find 方法中的条件和Open时的第一个参数中的条件表述方法是完全一致的当在已打开的记录集中,找不到该记录时,Eof为True找到则当前的值就是符合条件的记录 第三个部分就是添加/修改记录 修改记录很简单,先按以上的方法找到相关记录之后,给记录赋值就可以了 比如:[(修改密码)按方法(1)打开表之后] Recordset(密码)value = 123456 RecordsetUpdata 需要注意的就是,在修改完成后,要调用Updata方法,这样修改才能生效 而添加记录则可以用以下代码来实现: Recordsetaddnew Recordset(用户名)value = Admin Recordset(密码)value = Admin RecordsetUpdata 这里,先要调用Addnew方法,增加一条新记录,然后对这个新记录中的各字段赋值,最后再调用Updata方法 到这里就差不多了,最后说一下上面提到的几个方法 RecordsetOpen SQL语句,数据源,游标类型,打开方法 SQL语句不用说了,就是Select那啥的,目的就是按要求从表中返回数据 数据源就是一个打开之后的Connection对象 填1就可以了 打开方法对应了几个常数,具体哪几个可以从对象浏览器里看。 对应数值的意义: 1 只读 2 独占 3 可写 4 自已可写,别人可读。 Connectionopen 连接代码,服务器用户名,密码。

我想表中应该没有总分这个字段吧,总分要计算一下

select top 10 学号,总分 from (select 学号,sum(成绩) as 总分 from 成绩表 group by 学号) a

order by 总分 desc

1、首先打开Visual Studio 2008代码窗口,添加引用。

2、输入以下代码:Public conn1  As SqlConnection = New SqlConnection 。

3、声明关键字 Public;(因为是全局变量,所以用Public 来声明)。

4、如果SQL 数据库就在本机,则用以下代码连接。

5、如果代码太长,影响可读性,可以用空格加"_"后,回车换行即可。

'新建工程,在FORM1上

'添加2个文本框text 一个命名为dbpath,一个命名为KEY

'添加一个Combo 命名为ziduan

'添加一个Treeview 命名为tableview

'添加一个MSHFlexGrid 命名为msh

'添加2个安钮 '一个命名为open ,一个命名为SEARCH

'代码贴在这里,看不明白加我QQ87904619

'时间紧,可能会有BUG。你自己看下吧

Dim conn As New ADODBConnection

Dim rs As ADODBRecordset

Dim tablenm As String '存储表名使用

Private Sub open_Click()

Dim strconn As String

Dim i As Integer

i = 0

cmd1Filter = "Access数据库文件|mdb|All Files|"

cmd1DialogTitle = "选择数据库文件"

cmd1ShowOpen

'打开数据库文件

If cmd1FileName <> "" Then

dbpathText = cmd1FileName

strconn = "provider=microsoftjetoledb40;data source=" & cmd1FileName

'打开数据源连接

If connState = adStateOpen Then

connClose

End If

connopen strconn

'读取所有表名称,填充到TreeView

tabletreeNodesClear

Dim nd1 As Node

Set nd1 = tabletreeNodesAdd(, , "pt", "数据库文件")

Set rs = connOpenSchema(adSchemaTables)

Do Until rsEOF

'判断是否是表

If rs!TABLE_TYPE = "TABLE" Then

Dim nd As Node

'将表名添加到TreeView

Set nd = tabletreeNodesAdd("pt", tvwChild, "pt" & i)

ndText = rs!TABLE_NAME

i = i + 1

End If

rsMoveNext

Loop

rsClose

End If

End Sub

'取表里所有字段的函数

Private Function getTable(ByVal nodename As String) As Recordset

Dim str As String

str = "select from " & nodename

Set rs = New ADODBRecordset

rsopen str, conn, 3, 3

Set getTable = rs

End Function

'查找函数

Private Function getKey() As Recordset

Dim str As String

str = "select from " & tablenm & " where " & Trim(ziduanText) & " like '%" & keyText & "%'"

rsopen str, conn, 3, 3

Set getKey = rs

End Function

Private Sub search_Click()

Set mshDataSource = getKey

rsClose

End Sub

'点击表名时使用的函数

Private Sub tabletree_NodeClick(ByVal Node As MSComctlLibNode)

Dim i As Integer

If Nodekey <> "pt" Then

tablenm = Trim(NodeText)

Set rs = getTable(Trim(NodeText))

ziduanClear

For i = 0 To rsFieldsCount - 1

ziduanAddItem rs(i)Name

Next i

rsClose

End If

End Sub

'本程序在win2000下读取VB目录NOTHWIND数据库通过

"select from dboTable_tl where date='" &Text1Text"' and time='" & Text2Text & "'"

Text1 输入日期 Text2 输入时间

以上就是关于VB语言 如何检索mdb数据库全部的内容,包括:VB语言 如何检索mdb数据库、vb中用ado怎么实现数据库的查找功能代码、VB 如何查询 access 数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9728940.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存