首页技术vb数据库编程(VB数据库编程实例详解)

vb数据库编程(VB数据库编程实例详解)

编程之家2024-02-09118次浏览

一、VB如何实现查询数据库并显示出来

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

vb数据库编程(VB数据库编程实例详解)

PublicFunctionExportToExcel(ByValstrOpenAsString,TitleAsString,dizhiAsString,conAsADODB.Connection)

'*********************************************************

'*名称:ExporToExcel

'*功能:导出数据到EXCEL'*用法:ExporToExcel(strOpen查询字符串,titile

'*excel标题,dizhi保存路径,con数据库连接地址)

'*********************************************************

vb数据库编程(VB数据库编程实例详解)

lok:OnErrorGoToer

Screen.MousePointer=11

DimRs_DataAsNewADODB.Recordset

DimIrowcountAsLong

DimIcolcountAsLong

DimXlAppAsNewExcel.Application

vb数据库编程(VB数据库编程实例详解)

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.SaveAsdizhi

SetXlApp=Nothing'"交还控制给Excel

Setxlbook=Nothing

SetxlSheet=Nothing

Screen.MousePointer=0

ExitFunction

er:

'Dispose_Err

MsgBoxerr.Description&"从新导报表,请等待!"

GoTolok:

EndFunction

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

二、VB数据库操作实例

VB数据库操作实例

步骤/方法

《书库管理系统》是一个最简单的数据库操作实例,它包括浏览、添加、修改、删除功能的数据库操作,使用数据链接控件Adodc链接数据库、数据显示控件MSHFlexGrid显示数据库中的记录。在新建工程时工具箱中是没有Adodc控件和MSHFlexGrid控件的,我们必须点击菜单中的【工程】-【部件】,在对话框中勾选“Microsoft ADO Data Control 6.0(SP6)”和“Microsoft Hierarchical FlexGrid Control 6.0(SP4)”,最后点击【确定】,这样Adodc控件和MSHFlexGrid控件就已经放置在工具箱中了。其中Adodc控件的ConnectionString属性值是:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=家庭书架.mdb;Persist Security Info=False",它设置链接了“家庭书架.mdb”这个Access数据库,RecordSourc属性值是:"select图书登记表.ID,图书登记表.名称,图书登记表.书号,图书登记表.作者,图书登记表.出版社,图书登记表.出借状态,出借记录.借书人,出借记录.电话,出借记录.地址,图书登记表.备注,图书登记表.出借记录 from图书登记表,出借记录 where图书登记表.ID=出借记录.zhuID ORDER BY图书登记表.ID",因为在“家庭书架.mdb”数据库中包含"图书登记表"和"出借记录"二个数据表,这是多表链接的典型的SQL语句。Adodc的这二个属性值在VB的属性窗口进行编辑,你可以将上述属性值直接输入到相应的属性中,设置Visible的值为False,目的是在运行中不显示这个控件,其他属性默认值即可。 MSHFlexGrid控件的名称我们修改为MS1,它的属性设置稍稍比较麻烦:首先将它的DataSource属性在属性窗口设置为"Adodc1";然后在对象窗口右击控件,在下拉菜单中点击【属性】,在“通用”标签中修改行为3,修改列为11,修改固定行为0,修改固定列为0,如果数据链接没有问题,在属性的“带区”标签中可以看到列标题和列名称已经设置了,其他属性页的属性可以容许默认值,中点击【确定】即可。另外在属性窗口设置MSHFlexGrid控件的BackColorBkg属性为H00FFE0E0,这个属性是控件底色的设置,然后设置BackColorFixed属性为H00C0FFFF,这个属性是控件数据显示标题的底色。其他默认值即可。最后放置三个按钮,一个标签,三个Frame控件,在Frame1、Frame2、Frame3控件中分别放置9个标签(数组),8个文本框,一个下拉选择框,一个按钮,在Frame2、Frame3控件中分别放置一个标签,设置这个标签的Visible值为False,其他设置参考下图:设置和调整控件如上图后,设置数据库,在程序目录新建一个Access数据库,修改数据库的名称为“家庭书架.mdb”,新建二个数据表,分别是:“图书登记表”和“出借记录”:在“图书登记表”中添加字段:“ID”为自动编号、主键,“名称”为文本、大小50,“书号”为文本、大小30,“作者”为文本、大小40,“出版社”为文本、大小60,“出借状态”为文本、大小20,“出借记录”为数字、长整型,“备注”为文本、大小50;在“出借记录”中添加字段:“ID”为自动编号、主键,“zhuID”为数字、长整型,“名称”为文本、大小50,“借书人”为文本、大小20,“电话”为文本、大小20,“地址”为文本、大小50。数据库设置成功。

点击【视图】-【代码窗口】输入下面的代码:'模块级变量 Dim ZFC As String Dim ROSX As Integer

Private Sub Command1_Click()'添加记录 Dim FL As String, XID As Long FL= App.Path"\家庭书架.mdb" Set conn= OpenDatabase(FL) strSQL="Select* From图书登记表" Set rs= conn.OpenRecordset(strSQL) rs.AddNew rs!名称= Text1(0).Text rs!书号= Text1(1).Text rs!作者= Text1(2).Text rs!出版社= Text1(3).Text rs!出借状态= Combo1.Text rs!备注= Text1(7).Text If Combo1.Text="出借" Then rs!出借记录= 1 rs.Update rs.Close Set rs= Nothing strSQL="Select* From图书登记表 Order By ID Desc" Set rs= conn.OpenRecordset(strSQL) XID= rs!ID rs.Close Set rs= Nothing strSQL="Select* From出借记录" Set rs= conn.OpenRecordset(strSQL) If Combo1.Text="出借" Then rs.AddNew rs!zhuID= XID rs!名称= Text1(0).Text rs!借书人= Text1(4).Text rs!电话= Text1(5).Text rs!地址= Text1(6).Text rs.Update Else rs.AddNew rs!zhuID= XID rs!名称="" rs!借书人="没有出借" rs!电话="无" rs!地址="无" rs.Update End If rs.Close Set rs= Nothing conn.Close MsgBox"记录添加成功!" Unload Me书库管理.Show End Sub

Private Sub Command2_Click()'修改记录 If Val(Label4.Caption)= 0 Then MsgBox"没有选择要修改的记录!" Exit Sub End If Dim FL As String FL= App.Path"\家庭书架.mdb" Set conn= OpenDatabase(FL) strSQL="Select* From图书登记表 Where ID=" Val(Label4.Caption)"" Set rs= conn.OpenRecordset(strSQL) rs.Edit rs!名称= Text2(0).Text rs!书号= Text2(1).Text rs!作者= Text2(2).Text rs!出版社= Text2(3).Text rs!出借状态= Combo2.Text rs!备注= Text2(7).Text If Combo2.Text="出借" Then rs!出借记录= 1 rs.Update rs.Close Set rs= Nothing strSQL="Select* From出借记录 Where zhuID=" Val(Label4.Caption)"" Set rs= conn.OpenRecordset(strSQL) If Combo2.Text="出借" Then If Not rs.EOF Then rs.Edit rs!名称= Text2(0).Text rs!借书人= Text2(4).Text rs!电话= Text2(5).Text rs!地址= Text2(6).Text rs.Update Else rs.AddNew rs!zhuID= Val(Label4.Caption) rs!名称= Text2(0).Text rs!借书人= Text2(4).Text rs!电话= Text2(5).Text rs!地址= Text2(6).Text rs.Update End If Else If Not rs.EOF Then rs.Edit rs!名称= Text2(0).Text rs!借书人="没有出借" rs!电话="无" rs!地址="无" rs.Update Else rs.AddNew rs!zhuID= Val(Label4.Caption) rs!名称= Text2(0).Text rs!借书人="没有出借" rs!电话="无" rs!地址="无" rs.Update End If End If rs.Close Set rs= Nothing conn.Close MsgBox"记录修改成功!" Label4.Caption="" Unload Me书库管理.Show End Sub

'添加记录连接 Private Sub Command3_Click() Frame1.Visible= True Frame2.Visible= False Frame3.Visible= False ZFC="添加" For i= 0 To 7 Text1(i).Text="" Next i Combo1.Text="" Command1.Visible= True Label5.Caption="现在正在添加图书资料" End Sub

'修改记录连接 Private Sub Command4_Click() Frame1.Visible= False Frame2.Visible= True Frame3.Visible= False ZFC="修改" For i= 0 To 7 Text2(i).Text="" Next i Combo2.Text="" Label4.Caption="" Command2.Visible= True Label5.Caption="现在正在修改图书资料" End Sub

'删除记录连接 Private Sub Command5_Click() Frame1.Visible= False Frame2.Visible= False Frame3.Visible= True ZFC="删除" For i= 0 To 7 Text3(i).Text="" Next i Combo3.Text="" Label1.Caption="" Command6.Visible= True Label5.Caption="现在正在删除图书资料" End Sub

Private Sub Command6_Click()'删除记录 Dim SS As Integer SS= MsgBox("确实要删除这个记录吗?", vbOKCancel,"删除确认!") If SS= 1 Then If Val(Label1.Caption)= 0 Then MsgBox"没有选择要修改的记录!" Exit Sub End If Dim FL As String, XID As Long FL= App.Path"\家庭书架.mdb" Set conn= OpenDatabase(FL) strSQL="Select* From图书登记表 Where ID=" Val(Label1.Caption)"" Set rs= conn.OpenRecordset(strSQL) rs.Delete rs.Close Set rs= Nothing strSQL="Select* From出借记录 Where zhuID=" Val(Label1.Caption)"" Set rs= conn.OpenRecordset(strSQL) rs.Delete rs.Close Set rs= Nothing conn.Close MsgBox"记录删除成功!" Unload Me书库管理.Show Else MsgBox"取消了删除记录!" End If End Sub

'页面启动事件 Private Sub Form_Load() Dim strSQL As String Frame1.Visible= False Frame2.Visible= False Frame3.Visible= False Label5.Caption="现在正在浏览图书资料" MS1.BackColorBkg= HFFE0E0 End Sub

'点击MSHFlexGrid控件中记录的事件 Private Sub MS1_Click() Dim i As Integer, COLX As Integer COLX= MS1.Col ROSX= MS1.Row If ZFC="添加" Then For i= 0 To 7 Text1(i).Text="" Next i Combo1.Text="" ElseIf ZFC="修改" Then Text2(0).Text= MS1.TextMatrix(ROSX, 1) Text2(1).Text= MS1.TextMatrix(ROSX, 2) Text2(2).Text= MS1.TextMatrix(ROSX, 3) Text2(3).Text= MS1.TextMatrix(ROSX, 4) Combo2.Text= MS1.TextMatrix(ROSX, 5) Text2(4).Text= MS1.TextMatrix(ROSX, 6) Text2(5).Text= MS1.TextMatrix(ROSX, 7) Text2(6).Text= MS1.TextMatrix(ROSX, 8) Text2(7).Text= MS1.TextMatrix(ROSX, 9) Label4.Caption= MS1.TextMatrix(ROSX, 0) Label5.Caption="已经选择记录准备修改" ElseIf ZFC="删除" Then Text3(0).Text= MS1.TextMatrix(ROSX, 1) Text3(1).Text= MS1.TextMatrix(ROSX, 2) Text3(2).Text= MS1.TextMatrix(ROSX, 3) Text3(3).Text= MS1.TextMatrix(ROSX, 4) Combo3.Text= MS1.TextMatrix(ROSX, 5) Text3(4).Text= MS1.TextMatrix(ROSX, 6) Text3(5).Text= MS1.TextMatrix(ROSX, 7) Text3(6).Text= MS1.TextMatrix(ROSX, 8) Text3(7).Text= MS1.TextMatrix(ROSX, 9) Label1.Caption= MS1.TextMatrix(ROSX, 0) Label5.Caption="已经选择记录准备删除" ElseIf ZFC="" Then CL= MS1.Col For i= 1 To MS1.Cols MS1.Col= i- 1 MS1.CellBackColor= vbWhite Next i MS1.Col= CL End If MS1.Col= C0LX MS1.CellBackColor= H119911 End Sub

Private Sub MS1_LeaveCell() Dim i As Integer Dim CL As Integer'离开该行时将该行的颜色恢复为白色 CL= MS1.Col For i= 1 To MS1.Cols MS1.Col= i- 1 MS1.CellBackColor= vbWhite Next i MS1.Col= CL End Sub

下面是出现运行的情况:

三、在VB中,怎样对SQL数据库里面的数据进行操作

方法1,

建立一个模块

将工程的启动设置为 SUB MAIN

在模块里写下面代码

Public db As Database

Public rs As Recordset

Sub main()

set db=db.opendatabase("数据库路径"<建议用相对路径--就是把数据库文件和工程文件放在同一目录下--相对路径就是APP.PATH+"数据库名带后缀">)

第一启动窗体<比如:form1>.show

end sub

以后在其他窗体中如果要调用数据库只用在窗体中写代码

set rs=openrecordset(<可以是数据库的表--如"student",也可以是查询语句--如"select* form student">)

这时数据库的内容都存在FILE集合里

比方说set rs=openrecordset("select* form student")

rs.file(0)就是SQL语句查询结果的第一列

rs.files就是整个结果

使用text1.text=rs.file(0)就可以把文本框于查询结果帮定起来

如果要对数据库进行修这时用以下代码:

db.Execute(<SQL语句--如"insert into student(sno,sname) value("","")">)

方法2,

工程--部件--选择microsoft data bound grid control 5.0

然后在窗体中添加左边工具栏的 DATA和DBGRID控件

选择DBGRID将属性DATASOURCE设置为DATA控件的名字(如DATA1)

然后选择DATA将属性CONNECT设置为ACCESSS 2000

设置DATABASENAME选择数据库的存放路径

最后设置RECORDSET为需要连接的表的名字

运行就可以看到 DATAGRID中显示了数据库的信息

ms17010下载(ms17010补丁官方下载)solidworks工程图模板(solidworks工程图模板是什么格式)