当前位置:首页 » 操作系统 » vb查询数据库实例

vb查询数据库实例

发布时间: 2022-11-02 00:04:58

‘壹’ VB查询access数据库

DataGrid控件是不能实现你要求的功能的,但是你可以改用MSFlexGrid控件。代码有些复杂,我不知道你之前有些什么代码。写这几个代码给你,希望对你有帮助,我假定combo1在选择之前的文本是“请选择条件”,数据库表的名称我假定是 你的数据库名称 字段名称也用你自己的。 这个代码的意思就是,当有一个两个查找条件没有给定的时候应该怎么设置查找条件。
Private Sub command1_Click()
If Not text1.Text = "" Then
If Not combo1.Text = "请选择条件" Then
sqltxt = "select * from 你的数据库名 where 文本框对应字段 = '" & text1.Text & "' AND 五选项对应字段 = '" & comobo1.Text & "' "
Else
SQLtxt = "select * from 你的数据库名 where 文本框对应字段 = '" & text1.Text & "' "
End If
Else
If Not combo1.Text = "请选择条件" Then
SQLtxt = "select * from 你的数据库名 where 五选项对应字段名 = '" & combo1.Text & "' "
Else
SQLtxt = "select * from 你的数据库名"
End If
End If
Call ShowData(SQLtxt)
End Sub
用一个循环语句可以将查出来的全部显示出来,但是我不知道你数据库里有些什么。给你一个我写的代码,参考这写你自己的吧
Public FangWen As ADODB.Connection '定义连接对象FangWen
Public rsFangWen As ADODB.Recordset '定义记录集对象rsFangWen
Public cmmFangWen As ADODB.Command '定义命令对象cmmFangWen
Public Sub shuju() '此过程实现连接数据库和打开记录集
Set FangWen = New ADODB.Connection '设置连接对象实例
FangWen.CursorLocation = adUseClient '设置游标类型
FangWen.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\管理信息.mdb;Jet OLEDB:Database Password=txgf" '与数据库连接
Set rsFangWen = New ADODB.Recordset
Set rsFangWen.ActiveConnection = FangWen '设置记录集对象实例
Set cmmFangWen = New ADODB.Command
Set cmmFangWen.ActiveConnection = FangWen '设置命令对象实例
End Sub

Private Sub ShowData(SQL As String)
Call shuju '调用模块,打开数据库
rsFangWen.Open SQL, FangWen, adOpenStatic, adLockOptimistic '打开记录集,其内容为表 "你的表"
With MSFlexGrid1
.ColWidth(0) = 1000
.ColWidth(1) = 1000
.ColWidth(2) = 2000
.ColWidth(3) = 1200 's设置表格格式
.TextMatrix(0, 0) = "学号"
.TextMatrix(0, 1) = "姓名"
.TextMatrix(0, 2) = "学院"
.TextMatrix(0, 3) = "班级" '表格第一行显示内容
.Rows = 1
Do While Not rsFangWen.EOF '利用循环,学号,姓名,学院,班级显示在表里
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rsFangWen.Fields(0) & ""
.TextMatrix(.Rows - 1, 1) = rsFangWen.Fields(1) & ""
.TextMatrix(.Rows - 1, 2) = rsFangWen.Fields(10) & ""
.TextMatrix(.Rows - 1, 3) = rsFangWen.Fields(11) & ""
rsFangWen.MoveNext
Loop
End With
rsFangWen.Close '关闭记录集
FangWen.Close '断开数据库连接
End Sub

而且我还不知道你用的是什么数据库,我用的是access

‘贰’ vb中access数据库查询

Private Sub Command1_Click()
Dim Conn As New ADODB.Connection

Dim Rs As New ADODB.Recordset
Conn.Open connstring ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & “数据库的路径和名字” & ";Persist Security Info=True;Jet OLEDB:Database Password= & "数据库密码"
sql = "Select * From “ & ”表名" & where ID=20"

Rs.Open sql, Conn, 1, 3

If NOT rs.eof then

m_date= rs("日期型字段的名字")
m_data= rs("数值型字段的名字")
end if
end sub

‘叁’ VB6程序查询数据库

既然是多方式模糊查询,那么必须具备几个条件:
1、首先有查询方式的选择框,还有查询需要的关键字的输入框;
2、模糊查询结果不是一条记录,那么必须将查询出的所有结果在列表框控件中显示出来;
3、点击列表框中的一条记录,在文本框中显示这条记录的详细内容。
我比较喜欢用MSFlexGrid控件显示查询结果,下面给你一个比较实用的范例:

Private Sub Command1_Click() '查询
If Combo1.Text = "" Then
MsgBox "你没有选择查询方式,请选择!", 16, "错误!"
Exit Sub
End If
If Text1.Text = "" Then
MsgBox "你没有填写关键字,请填写!", 16, "错误!"
Exit Sub
End If
If Combo1.Text = "查询条件1" Then
strSQL = "Select * From 数据表名 字段名1 Like '%" & Text1.Text & "%'"
ElseIf Combo1.Text = "查询条件2" Then
strSQL = "Select * From 数据表名 Where 字段名2 Like '%" & Text1.Text & "%'"
ElseIf Combo1.Text = "查询条件3" Then
strSQL = "Select * From 数据表名 Where 字段名3 Like '%" & Text1.Text & "%'"
End If
Call SJK(db) '数据库连接函数
RS.Open strSQL, db, 2, 2
Do While Not RS.EOF
SST = SST + 1
RS.MoveNext
Loop
RS.Close
Set RS = Nothing
If SST = 0 Then
MsgBox "你没有你查询的记录!", 16, "无记录!"
With MSFlexGrid1
.Cols = 3
.Rows = 1
.TextMatrix(0, 0) = " 序号"
.TextMatrix(0, 1) = " 姓名"
.ColWidth(0) = 1000
.ColWidth(1) = 1000
.ColWidth(2) = 0
End With
db.Close
Set db = Nothing
Exit Sub
End If
With MSFlexGrid1
.Cols = 3
.Rows = SST + 1
.TextMatrix(0, 0) = " 序号"
.TextMatrix(0, 1) = " 姓名"
.ColWidth(0) = 1000
.ColWidth(1) = 1000
.ColWidth(2) = 0
RS.Open strSQL, db, 2, 2
For I = 1 To SST
.TextMatrix(I, 0) = I
.TextMatrix(I, 1) = RS!姓名
If Option1(0).Value = True Then
.TextMatrix(I, 2) = RS!SID
ElseIf Option1(1).Value = True Then
.TextMatrix(I, 2) = RS!SID
ElseIf Option1(2).Value = True Then
.TextMatrix(I, 2) = RS!SID
ElseIf Option1(3).Value = True Then
.TextMatrix(I, 2) = RS!ZID
ElseIf Option1(4).Value = True Then
.TextMatrix(I, 2) = RS!SID
End If

RS.MoveNext
Next I
RS.Close
Set RS = Nothing
End With
db.Close
Set db = Nothing
Label1(2).Caption = "本次查询结果" & SST & "条"
End Sub

Private Sub MSFlexGrid1_Click()
If Not Val(Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2))) = 0 Then
PKID = Val(Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2)))
Call SJK(db)
strSQL = "select * from 数据表名 Where ID=" & PKID & " Order By ID"
RS.Open strSQL, db, 3, 3
Text2(0).Text = RS!字段1
Text2(1).Text = RS!字段2
Text2(2).Text = RS!字段3
Text2(3).Text = RS!字段4
Text2(4).Text = RS!字段5
Text2(5).Text = RS!字段6
Text2(6).Text = RS!字段7
Text2(7).Text = RS!字段8
RS.Close
Set RS = Nothing
db.Close
Set db = Nothing
End If
End Sub

‘肆’ 如何在vb程序中查找数据库信息并显示

要查找数据库信息,关键是要解决链接数据库的问题,下面简述Vb如何SQL数据库:
有两种方法可以实现,一种是通过ODBC数据源的配置进行连接,一种是通过纯代码编辑进行连接,下面我们就详细介绍一下这两种连接方法。

ODBC数据源VB连接SQL数据库
一、配置ODBC数据源
1、在控制面板中,双击管理工具,然后打开ODBC数据源管理器。
2、在“系统DSN”选项卡中,单击“添加”按钮,打开“创建新数据源”对话框,在“名称”列表框中选择“SQL Server”。选好单击完成
3、在打开“建立新的数据源到SQL Server”对话框,在“名称”文本框输入新数据源的名称,描述数据源按你理解的方式来写(随意)。“服务器”就选择你要连接到的服务器。
4、选择使用用户输入登录的ID和密码的SQL 验证。选连接SQL默认设置
5、再下一步下一步,完成。测试数据源看连接是否成功就行了。成功后按确定。
二、VB中设置连接

1、添加部件Mircrosoft ADO Data Control 6.0(OLEDB),把部件拖到窗体。

2、对ADO部件点右键选属性,选择使用连接字符串,按生成。

3、选择Mircosoft OLE DB Providar for SQL Server按下一步

4、
1)输入服务器名称
2)使用指定的服务器信息
3)在服务器上选择数据库
这时就选择你在SQL Server建好的数据库就行了

5、测试连接可以看到连接是否成功!
通过代码VB连接SQL数据库

Public conn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public addFlag As Boolean
Public Function OpenCn(ByVal Cip As String) As Boolean
Dim mag As String
On Error GoTo strerrmag
Set conn = New ADODB.Connection
conn.ConnectionTimeout = 25
conn.Provider = "sqloledb"
conn.Properties("data source").Value = Cip '服务器的名字
conn.Properties("initial catalog").Value = "zqoa" '库名
'conn.Properties("integrated security").Value = "SSPI" '登陆类型
conn.Properties("user id").Value = "sa"
conn.Properties("password").Value = "sa"
conn.Open
OpenCn = True
addFlag = True
Exit Function
strerrmag:
mag = "Data can't connect"
Call MsgBox(mag, vbOKOnly, "Error:Data connect")
addFlag = False
Exit Function
End Function

Public Sub cloCn()
On Error Resume Next
If conn.State <> adStateClosed Then conn.Close
Set conn = Nothing
End Sub
Public Function openRs(ByVal strsql As String) As Boolean '连接数据库记录集
Dim mag As String
Dim rpy As Boolean
On Error GoTo strerrmag
Set rs = New ADODB.Recordset
If addFlag = False Then rpy = True
With rs
.ActiveConnection = conn
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open strsql
End With
addFlag = True
openRs = True
End
'Exit Function
strerrmag:
mag = "data not connect"
Call MsgBox(mag, vbOKOnly, "error:connect")
openRs = False
End
'Exit Function
End Function
Public Sub cloRs()
On Error Resume Next
If rs.State <> adStateClosed Then rs.Clone
Set rs = Nothing
End Sub

‘伍’ vb中用sql语句查询数据库

"SELECT
sno,sco
FROM
sco
WHERE
sno='"
&
text1.text
&
"'"
因为现在不弄VB6了,所以具体怎么连接的代码我忘了,大概就是如果得到的结果RecordSet是空的,即Bof
And
Eof,则用户名错误,否则如果规定了用户名不可重复,就有且仅有1条记录,再比较其中的sco与Text2.Text是否相等,是则正确通过,否则密码错误。

‘陆’ 在VB怎么查询数据库中的数据啊!

1.一个简单的查询的例子:
'*定义一个连接
Dim Conn As ADODB.Connection
'*定义一个记录集
Dim mrc As ADODB.Recordset
'*分别实例化
Set Conn = New ADODB.Connection
set mrc =New ADODB.Recordset
'*定义一个连接字符串
dim ConnectString as string
ConnectString="provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\data\数据库名.mdb;jet oledb:database password=数据库密码"
'*打开连接
Conn1.Open ConnectString
'*定义游标位置
Conn1.CursorLocation = adUseClient
'*查询记录集(从student表中找出名子为"张三"的记录)
mrc.open "select * from student where name='张三'",Conn, adOpenKeyset, adLockOptimistic

'*现在你已经得到了你想要查询的记录集了,那就是mrc
'*你可以把此记录集与DataGrid榜定,用datagrid显示你查询的记录
set me.datagrid.datasource=mrc

‘柒’ VB如何实现查询数据库并显示出来

可以快速导出使用excel 就有该功能

PublicFunctionExportToExcel(ByValstrOpenAsString,TitleAsString,diAsString,conAsADODB.Connection)
'*********************************************************
'*名称:ExporToExcel
'*功能:导出数据到EXCEL'*用法:ExporToExcel(strOpen查询字符串,titile
'*excel标题,di保存路径,con数据库连接地址)
'*********************************************************
lok:OnErrorGoToer
Screen.MousePointer=11
DimRs_DataAsNewADODB.Recordset
DimIrowcountAsLong
DimIcolcountAsLong

DimXlAppAsNewExcel.Application
DimxlbookAsExcel.Workbook
DimxlSheetAsExcel.Worksheet
DimxlQueryAsExcel.QueryTable

WithRs_Data
If.State=adStateOpenThen
.Close
EndIf
.ActiveConnection=con
.CursorLocation=adUseClient
.CursorType=adOpenStatic
.LockType=adLockReadOnly
.Source=strOpen
DoEvents
'Debug.PrintstrOpen
.Open

EndWith
Debug.PrintstrOpen
'SetRs_Data=Open_rst_from_str(strOpen)
WithRs_Data
If.RecordCount<1Then
MsgBox("没有记录!")
Screen.MousePointer=0
ExitFunction
EndIf
'记录总数
Irowcount=.RecordCount
'字段总数
Icolcount=.Fields.Count
EndWith

SetXlApp=CreateObject("Excel.Application")
Setxlbook=Nothing
SetxlSheet=Nothing
Setxlbook=XlApp.Workbooks().Add
SetxlSheet=xlbook.Worksheets("sheet1")


'添加查询语句,导入EXCEL数据
SetxlQuery=xlSheet.QueryTables.Add(Rs_Data,xlSheet.Range("a1"))

WithxlQuery
.FieldNames=True
.RowNumbers=False
.FillAdjacentFormulas=False
.PreserveFormatting=True
.RefreshOnFileOpen=False
.BackgroundQuery=True
.RefreshStyle=xlInsertDeleteCells
.SavePassword=True
.SaveData=True
.AdjustColumnWidth=True
.RefreshPeriod=0
.PreserveColumnInfo=True
EndWith

xlQuery.FieldNames=True'显示字段名
xlQuery.Refresh

DimiAsInteger,ZdAsString
WithxlSheet
Fori=1To6

Zd=.Range(.Cells(1,1),.Cells(1,Icolcount)).item(1,i)
'.Range(.Cells(1,1),.Cells(1,Icolcount)).Item(1,i)=Lm_YwToZw(Zd)
Next
.Range(.Cells(1,1),.Cells(1,Icolcount)).Font.name="黑体"
'设标题为黑体字
'.Range(.Cells(1,1),.Cells(1,Icolcount)).Font.Bold=True
'标题字体加粗
.Range(.Cells(1,1),.Cells(Irowcount+1,Icolcount)).Borders.LineStyle=xlContinuous
'.Range(.Cells(Irowcount+2,Icolcount)).Text=Zje
'设表格边框样式
EndWith
XlApp.Visible=True
XlApp.Application.Visible=True
'xlBook.SaveAsdi
SetXlApp=Nothing'"交还控制给Excel
Setxlbook=Nothing
SetxlSheet=Nothing
Screen.MousePointer=0
ExitFunction
er:
'Dispose_Err
MsgBoxerr.Description&"从新导报表,请等待!"

GoTolok:
EndFunction

使用这个模块就可以,你可以看看引用的函数即可

热点内容
c语言编程代码 发布:2025-05-13 19:48:17 浏览:703
安卓的AndroidAuto 发布:2025-05-13 19:41:49 浏览:358
下载安装python 发布:2025-05-13 19:39:21 浏览:28
苹果手机如何退出ad密码 发布:2025-05-13 19:35:24 浏览:353
资本论中央编译局 发布:2025-05-13 19:21:50 浏览:134
python路径是否存在 发布:2025-05-13 19:08:38 浏览:570
保时捷卡宴哪个配置比较好 发布:2025-05-13 19:00:08 浏览:725
c语言负数运算 发布:2025-05-13 18:45:21 浏览:428
太空杀电脑版连接不到服务器 发布:2025-05-13 18:40:19 浏览:457
同样的配置为什么跑分不同 发布:2025-05-13 18:39:06 浏览:279