vb将数据导入access

合集下载

ExcelVBA把Excel导入到Access中(TransferSpreadsheet)

ExcelVBA把Excel导入到Access中(TransferSpreadsheet)

ExcelVBA把Excel导入到Access中(TransferSpreadsheet)导入单个EXCEL文件Sub Export_Sheet_Data_ToAccess()Dim myFile As VariantDim AppAccess As New Access.ApplicationDim wbPath As StringmyFile = Application.GetOpenFilename("Excel Files (*.xls), *.xls")If VarType(myFile) = vbBoolean ThenMsgBox "CanCel by User!"Exit SubEnd IfApplication.ScreenUpdating = FalsewbPath = ThisWorkbook.Path & "\"With AppAccess.OpenCurrentDatabase wbPath & "CheckIn.mdb", True.DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "data", myFile, True .CloseCurrentDatabaseEnd WithApplication.ScreenUpdating = TrueMsgBox myFile & Chr(10) & " Export is Done!"Set AppAccess = NothingEnd Sub导入多个EXCEL文件Sub Export_MultiSheets_Data_T oAccess()Dim myFiles As Variant, vItem As VariantDim AppAccess As New Access.ApplicationDim wbPath As StringmyFiles = Application.GetOpenFilename( _"Excel Files (*.xls), *.xls", , "Select All Files", , True)If VarType(myFiles) = vbBoolean ThenMsgBox "CanCel by User!"Exit SubEnd IfApplication.ScreenUpdating = FalsewbPath = ThisWorkbook.Path & "\"With AppAccess.OpenCurrentDatabase wbPath & "CheckIn.mdb", True If IsArray(myFiles) ThenFor Each vItem In myFiles.DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "data", vItem, True NextEnd If.CloseCurrentDatabaseEnd WithApplication.ScreenUpdating = TrueMsgBox " Export is Done!"Set AppAccess = NothingEnd Sub导入一个工作簿下的所有工作表Sub Export_Sheets_Data_T oAccess()Dim myFile As VariantDim AppAccess As Access.ApplicationDim wbPath As StringDim objWb As WorkbookDim rngData As RangeDim lRow As LongDim lCol As LongDim arr() As VariantDim iSht As IntegerSet AppAccess = New Access.ApplicationmyFile = Application.GetOpenFilename("Excel Files (*.xls), *.xls") If VarType(myFile) = vbBoolean ThenMsgBox "CanCel by User!"Exit SubEnd IfApplication.ScreenUpdating = FalseSet objWb = GetObject(myFile)ReDim arr(1 To objWb.Sheets.Count)For iSht = 1 To objWb.Sheets.CountWith objWb.Sheets(iSht)lRow = .[a65536].End(xlUp).RowlCol = .[iv1].End(xlT oLeft).ColumnSet rngData = .Range(.Cells(1, 1), .Cells(lRow, lCol))arr(iSht) = .Name & "!" & rngData.Address(0, 0)End WithNextobjWb.Close FalseSet objWb = NothingwbPath = ThisWorkbook.Path & "\"With AppAccess.OpenCurrentDatabase wbPath & "Database.mdb", TrueFor iSht = 1 To UBound(arr).DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _ "data", myFile, True, arr(iSht) Next.CloseCurrentDatabaseEnd WithApplication.ScreenUpdating = TrueMsgBox myFile & Chr(10) & " Export is Done!" Set AppAccess = NothingEnd Sub。

用VB将一个文本文件中的数据导入到Access的某个数据表中

用VB将一个文本文件中的数据导入到Access的某个数据表中

课程设计任务书一、课程设计时间2008~09第2学期第15~16周,共计2周,40学时。

二、课程设计内容将一个文本文件(file30_数据的导入.txt)中的数据导入到Access的某个数据表中。

提示:①先在Access数据库中创建出相应的表。

②一方面,用ADO数据控件打开表;另一方面用文件读取术读取给定的文本文件中的内容,并添加到数据库表中。

三、课程设计要求程序质量:✧贯彻事件驱动的程序设计思想。

✧用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。

✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。

课程设计说明书:✧课程结束后,上交课程设计说明书和源程序。

课程设计说明书的内容参见提供的模板。

四、指导教师和学生签字指导教师:________ 学生签名:________五、成绩六、教师评语目录需求分析 (4)设计分析 (5)关键技术 (6)总结 (10)完整的源程序 (11)参考文献 (11)需求分析数据的导入是将文本文件中的数据读取到数据库指定的表中。

由于文本文件中的数据不方便统计、管理,通常要将其导入数据库中,所以设计一个程序直接实现数据的导入能节省大量的时间,提升工作效率。

要求:在Access中创建chanpin 表,用来储存文本文件中的数据。

此表的结构应如下定义:id,name,price,store。

设计分析(1)基本原理:建立程序设计与数据库的连接,用input语句读取文本文件,用insert语句将数据添加到数据库中。

(2)总体流程设计:关键技术1建立与数据库的连接代码如下Option ExplicitOption Base 1Dim cnn As ADODB.Connection‘声明变量作为连接对象Private Sub Form_Load()Set cnn = New ADODB.Connectioncnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _"Data Source=sjddr.mdb"‘连接数据源cnn.ConnectionTimeout = 30cnn.OpenEnd Sub2读取数据是用input语句将文本文件的数据读取出来在窗体中显示出来Select<字段名表>From<表名>Where<条件>程序段如下:Private Sub Command1_Click()Dim id$, name$, price$, store$ ‘声明变量属性Open "file30_数据的导入.txt" For Input As #1‘打开要输入的文件Do While Not EOF(1) ‘循环之文件尾Input #1, id, name, price, store ‘将数据读入到四个变量中Print id, name, price, store ‘输出数据LoopClose #1‘关闭文件MsgBox "完成" End Sub窗体-读取数据:3导入数据库是将文本文件的数据导入数据库中指定的表中Update<表名>Set<字段>=<表达式>[,<字段>=<表达式>]Where<条件>程序段如下:Private Sub Command2_Click()Dim szsql$Dim id$, name$, price$, store$ ‘声明变量属性Open "file30_数据的导入.txt" For Input As #1‘打开要输入的文件Do While Not EOF(1) ‘循环之文件尾Input #1, id, name, price, stor e‘将数据读入到四个变量中szsql = "insert into chanpin(id, name, price, store) values ('" & Trim(id) & "','" & Trim(name) & "','" & Trim(price) &"','" & Trim(store) & "')" ‘'数据可作相应的转化cnn.Execute (szsql) ‘如果是,就执行相应操作LoopClose #1‘关闭文件MsgBox "完成"End Sub数据库-chanpin表:总结这次课程设计我的题目是“数据的导入”,目的是设计一个程序将文本文件直接读取到指定数据库的表中。

VBA与Access的联动操作指南

VBA与Access的联动操作指南

VBA与Access的联动操作指南VBA(Visual Basic for Applications)是一种用于编写宏的编程语言,主要用于增强微软Office系列软件的功能。

Access 是微软Office套件中的一款数据库管理系统,集成了数据存储、查询和报表生成等功能。

在许多企业和个人使用Access 来管理和分析大量的数据。

通过VBA编程与Access的联动,可以更加高效地处理和管理数据。

本文将为您提供VBA与Access的联动操作指南,帮助您更好地利用这两个强大的工具。

第一部分:VBA基础知识1. VBA概述:简单介绍VBA的由来、特点和应用范围。

2. VBA开发环境:详细介绍如何打开VBA开发环境,以及各个窗口的作用。

3. VBA语法和结构:讲解VBA的基本语法规则和编程结构,如变量的声明和赋值、条件语句、循环语句等。

第二部分:Access基础知识1. Access概述:简单介绍Access的功能和应用场景,以及其与VBA的关系。

2. Access数据库的创建:指导用户如何创建一个新的Access数据库,并设置字段和数据类型。

3. Access数据库的查询和报表:介绍Access的查询和报表功能,帮助用户根据自己的需求进行数据的检索和分析。

第三部分:VBA与Access联动1. 访问Access数据库:通过VBA代码连接Access数据库,并实现数据的读取和写入。

2. 数据的增删改查:使用VBA代码实现对Access数据库中数据的增加、删除、修改和查询操作。

3. VBA与Access的交互:介绍如何使用VBA与Access进行交互,包括运行Access中的宏和报表等。

第四部分:案例分析1. 案例一:利用VBA和Access实现数据的自动导入和分析。

介绍如何通过编写VBA代码自动将外部数据导入Access数据库,并使用VBA自动执行数据分析和生成报表。

2. 案例二:通过VBA和Access实现数据的批量处理。

(完整版)vb连接access数据库及数据读写操作

(完整版)vb连接access数据库及数据读写操作

ACCESS数据库和VB的连接Edited by Ryan 20131、建立Access数据库2、启动VB,建立标准EXE图13、添加ActiveX控件鼠标指向任意VB控件,单击右键,选择“部件(O)”,出现图3所示界面图2图3选择部件“Microsoft ADO Data Control 6.0 (OLEDB)”,出现如图4所示控件图44、添加控件Adodc图54、在控件Adodc上添加数据源鼠标指向控件Adodc1,单击右键,选择“ADODC 属性”,弹出如图7所示界面图6图7单击“生成(U). . .”,弹出如图8所示界面图8选择“Microsoft Jet 4.0 OLE DB Provider”,单击“下一步(N) >>”,弹出如图9所示界面图9单击“. . .”,添加数据源(第一步所建Access 数据库),如图10所示图10单击“测试连接(T)”,出现提示框,如图11所示图11之后点击“确定”,退回到如图12所示界面图12单击“记录源”,弹出如图13所示界面图13在“命令类型”下,选择“1 - adCmdText”,在“命令文本(SQL)”下,输入“Select * from test1”,最后单击“应用”,“确定”即可之后,进入程序书写部分程序部分需要注意接头形式及简单例子如下:Private Sub Command1_Click() ‘VB按钮控件Dim mydb As New ADODB.Connection ‘定义新的数据库连接mydb.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\read database\test1\test1.mdb" ‘数据库绝对路径Dim rs As New ADODB.Recordset ‘定义数据库的一个对象mydb.Open ‘打开数据库rs.Open "select * from test1", mydb, 3, 3 ‘打开数据库中的表test1For i = 1 To 1 ! For循环控制选择哪一行rs.MoveNextNext iMe.Text1.Text = rs.Fields(1).Value ‘读取指定行中的哪个数据给文本框rs.Update ‘数据显示rs.Close ‘关闭表End Sub。

VBA与Access数据库的连接与操作

VBA与Access数据库的连接与操作

VBA与Access数据库的连接与操作VBA(Visual Basic for Applications)是一种非常强大的编程语言,它可以与各种Microsoft Office应用程序进行集成,包括Access数据库。

通过使用VBA,用户可以自动化执行各种任务,包括从Access数据库中检索数据、修改数据并将结果输出到用户界面。

本文将介绍如何在VBA中连接到Access数据库并进行操作。

我们将重点讨论以下内容:1. 连接到Access数据库2. 执行SQL查询3. 插入、更新和删除数据4. 创建和修改表格和查询1. 连接到Access数据库在VBA中连接到Access数据库,我们首先需要使用ADO(ActiveX Data Objects)来建立连接。

我们可以使用以下代码片段来连接到指定的Access数据库:```vbaDim conn As New ADODB.ConnectionDim dbPath As StringdbPath = "C:\路径\到\你的\数据库.accdb"conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath & ";"```在上述代码中,我们首先声明了一个ADODB.Connection对象作为连接的实例。

接下来,我们提供了Access数据库文件的路径,并使用conn.Open方法打开连接。

2. 执行SQL查询一旦我们成功地连接到Access数据库,我们可以使用VBA来执行SQL查询。

以下是一个示例代码段,用于从名为"Employees"的表中检索所有数据:```vbaDim rs As New ADODB.RecordsetDim sql As Stringsql = "SELECT * FROM Employees;"rs.Open sql, conn```在上述代码中,我们首先声明了一个ADODB.Recordset 对象作为结果集的实例。

Access中用VBA实现导入导出功能(使用实例技巧)

Access中用VBA实现导入导出功能(使用实例技巧)

什么情况下用‎链接表,什么情况用导‎入表功能何时使用导入‎或联接在Acces‎s中,可以很方便地‎从外部数据库‎中获取数据,这些数据库包‎括现在所有的‎各种主流数据‎库,像Dbase‎、Sybase‎、Oracle‎、Foxpro‎等。

这样你就不用‎去一个一个地‎重新输入原来‎的数据了。

在Acces‎s中,可以用“获取外部数据‎”命令来获取外‎部数据库的数‎据,这个命令包括‎两种方式“导入”和“链接表”。

对于不同的外‎部数据库可以‎用不同的获取‎方式。

而且在Acc‎e ss 中,不光可以获取‎外部数据,还可以导出别‎的数据库,就是将用Ac‎cess建立‎的数据库保存‎为别的数据库‎形式,像FOXPR‎O,DBASE数‎据库等。

单击“文件”菜单中的“获取外部数据‎”项,弹出一个子菜‎单,上面有“导入”和“链接表”两个选项。

我们单击其中‎的一个选项就‎可以实现导入‎或联接一个外‎部的数据库。

虽然这两个命‎令的功用都是‎打开外部的一‎个数据库,并从中获取需‎要的数据,但在使用上,还是有差别的‎。

在我们使用“导入”这个方法来获‎取外部数据时‎需要注意几个‎条件。

一、需要我们打开‎的数据库文件‎相对来说比较‎小,而且不会被其‎他数据库应用‎程序的用户频繁更改。

二、不需要与其他‎数据库应用程‎序的用户共享‎数据。

三、你正在替换以‎前的数据库应‎用程序,而且不再需要‎以前的数据格‎式。

四、在使用其他数‎据库中的数据‎时,需要最佳性能‎。

使用“链接表”方法来获取外‎部数据时也需‎要注意几个条‎件:一、需要打开的文‎件比较大,甚至比本地A‎ccess数‎据库的最大容‎量(1GB)还要大。

二、这个文件经常‎被其他数据库‎应用程序的用‎户更改。

三、必须在网络上‎与其他数据库‎应用程序的用‎户共享这个文‎件。

四、需要把应用程‎序分布到几个‎单独的用户那‎里,而且,你可能要不断‎更新开发的应‎用程序接口,将“应用程序”与数据分开可‎以更容易地更‎新应用程序,而不会干扰用‎户积累的数据‎。

利用Vb保存一幅图到Access数据库

利用Vb保存一幅图到Access数据库

End Sub
'保存文档的标题,和文档的内容,以及相应的图片
Private Sub Command2_Click()
'判断是否所写的文档是否已经存在数据库了,如果没有,则保存,否则
'不能保存(利用一个"临时rs"查询标题)
Dim subject, sql As String
sql = "select cl_number,class from class where class='" + Combo1.Text + "'"
rs1.Open sql, cn, adOpenDynamic, adLockPessimistic
rs("class") = rs1("cl_number")
下面是具体的窗口代码:
VERSION 5.00
Object= "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "comdlg32.ocx"
Object= "{3B7C8863-D78F-101B-B9B5-04021C009402}#1.2#0"; "richtx32.ocx"
Height = 255
Left = 480
TabIndex = 4
Top = 4800
Width = 495
End
Begin bel Label2
Caption = "内容"
Height = 255
TabIndex = 3

vb连接Access数据库实例

vb连接Access数据库实例

vb连接Access数据库实例下面我们给出一个连接到Access数据库的实例,此例中用到的数据库为Access 2003。

首先在e盘建立一个名为vb的文件夹,然后打开Access 2003,单击“文件”→“新建”,在右侧出现的任务窗格中单击“空数据库”,在出现的对话框中,我们在"文件名"项后输入给新数据库起的名称并选择保存位置,这里我们为新数据库命名为Access_db并保存到我们刚才建立的文件夹中,如下图,单击"创建"按钮后,系统就生成了一个新的Access空数据库。

在空数据库中,还没有任何用户所创建的表,接下来我们就要使用设计器(如下图)为Access_db数据库建立表。

首先我们为Access_db创建一个名为“wzdz”的表,该表由以下4个字段组成:(1)编号:此为Access自动添加的主键字段,我们直接拿来使用。

我们可直接设置后三个字段,在输入完了wzdz表的各个字段之后,此时关闭表设计器,Access 会提示是否要进行保存表,选择“是”,然后为表起名为“wzdz”。

因为没有定义主键(primary Key),Access会提示为表加上一个主键,按提示将编号设置为主键即可。

(2)后三个字段分别为网站名称、网站地址和网站描述,三个字段的属性是相同的,如下:▲数据类型:文本。

▲字段大小:50▲有效性规则:无。

▲必填字段:否▲允许空字符串:否▲索引:无设置完以上字段后,再重新在设计视图中打开wzdz表(方法:在设计器中右击wzdz表名,选“设计视图”命令),应如下图所示:有了数据库和表之后,如果想让VB应用程序访问数据库,还需进行数据源的配置。

只有在配置完成了数据源之后,才能让VB应用程序同数据库进行正确的连接工作,在VB应用程序中才可以通过ADO对象来进行具体数据的操作,如果在建立了数据库之后没有对数据源进行配置或者对数据源的配置工作出现错误,则在此之前所做的一切工作都是白费的。

利用VB将EXCEL中的数据导入ACCESS

利用VB将EXCEL中的数据导入ACCESS

Dim extend_str As StringDim execl_cnn As New ADODB.ConnectionDim execl_rst As New ADODB.RecordsetDim execl_count_rst As New ADODB.Recordset '纪录数量Dim execl_field_rst As New ADODB.RecordsetDim execl_strconn As StringDim execl_strcmd As StringDim execl_count_str As StringDim insertStr As String'操作oracle数据库的记录集Dim rst As ADODB.RecordsetCommonDialog1.ShowOpenextend_str = Right(CommonDialog1.FileName, 3)If (extend_str = "xls") Thenexecl_cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _"Data Source=" & CommonDialog1.FileName & _";Extended Properties=Excel 8.0;"ElseIf (extend_str = "dbf") Thenexecl_cnn.ConnectionString = "Provider=MSDASQL.1;Driver=Microsoft Visual FoxproDriver;SourceType=DBF;DBQ=" & getDir(CommonDialog1.FileName)execl_cnn.OpenEnd IfIf (extend_str = "xls") Thenexecl_strcmd = "SELECT * from `Sheet1$` "execl_count_str = "SELECT count(*) from `Sheet1$` "execl_field_rst.Open execl_count_str, execl_cnnIf (execl_field_rst.Fields(0).Value = 0) Thenexecl_strcmd = "SELECT * from [" & getFileNoExt(getfile(CommonDialog1.FileName)) & "$] "execl_count_str = "SELECT count(*) from [" & getFileNoExt(getfile(CommonDialog1.FileName)) & "$] " End Ifexecl_field_rst.CloseElseIf (extend_str = "dbf") Thenexecl_strcmd = "SELECT * from " & CommonDialog1.FileNameexecl_count_str = "SELECT count(*) from " & CommonDialog1.FileName End Ifexecl_rst.Open execl_strcmd, execl_cnnexecl_count_rst.Open execl_count_str, execl_cnnIf (CommonDialog1.FileName <> "") Then'进度条设置ProgressBar1.Min = 0ProgressBar1.max = execl_count_rst.Fields(0).ValueIf (execl_rst.RecordCount) Then '如果有记录If (Option1.Value) Then '如果是仪器总库If (execl_rst.Fields.Count = 8) ThenSet rst = yg_gain_table_recordset("yg_device")execl_rst.MoveFirstDo While (Not execl_rst.EOF)rst.AddNewrst.Fields(0).Value = yg_getNextId("yg_device_id")rst.Fields(1).Value = execl_rst.Fields(0).Value & ""rst.Fields(2).Value = execl_rst.Fields(1).Value & ""rst.Fields(3).Value = execl_rst.Fields(2).Value & ""rst.Fields(4).Value = execl_rst.Fields(3).Value & ""rst.Fields(5).Value = execl_rst.Fields(4).Value & ""rst.Fields(6).Value = execl_rst.Fields(5).Value & ""rst.Fields(7).Value = execl_rst.Fields(6).Value & ""rst.Fields(8).Value = execl_rst.Fields(7).Value & ""rst.Updateexecl_rst.MoveNextProgressBar1.Value = ProgressBar1.Value + 1DoEventsLoopyg_free_recordset rstElseMsgBox "结构不一致"Exit SubEnd IfEnd IfIf (Option2.Value) Then '如果是外借仪器If (execl_rst.Fields.Count = 12) ThenSet rst = yg_gain_table_recordset("yg_out_device")execl_rst.MoveFirstDo While (Not execl_rst.EOF)rst.AddNewrst.Fields(0).Value = yg_getNextId("yg_out_device_id") rst.Fields(1).Value = execl_rst.Fields(0).Value & "" rst.Fields(2).Value = execl_rst.Fields(1).Value & "" rst.Fields(3).Value = execl_rst.Fields(2).Value & "" rst.Fields(4).Value = execl_rst.Fields(3).Value & "" rst.Fields(5).Value = execl_rst.Fields(4).Value & "" rst.Fields(6).Value = execl_rst.Fields(5).Value & "" rst.Fields(7).Value = execl_rst.Fields(6).Value & "" rst.Fields(8).Value = execl_rst.Fields(7).Value & "" rst.Fields(9).Value = execl_rst.Fields(8).Value & "" rst.Fields(10).Value = execl_rst.Fields(9).Value & "" rst.Fields(11).Value = execl_rst.Fields(10).Value & "" rst.Fields(12).Value = execl_rst.Fields(11).Value & "" rst.Updateexecl_rst.MoveNextProgressBar1.Value = ProgressBar1.Value + 1 DoEventsLoopyg_free_recordset rstElseMsgBox "结构不一致"Exit SubEnd IfEnd If。

通过ODBC配置及VB脚本开发将IFIX数据写入到ACCESS数据库中

通过ODBC配置及VB脚本开发将IFIX数据写入到ACCESS数据库中

通过ODBC配置及VB脚本开发将IFIX数据写入到ACCESS数据库中1.配置计算机ODBC(1)使用access新建一个accdb数据库,命名为ReportData,后面要用到;(2)计算机-----控制面板-----ODBC 数据源(32位)进入配置界面,需要注意一点,必须配置32位的ODBC,因为IFIX软件只能够识别32位的,配置界面如下图:(3)选择系统DSN,点击添加按钮,根据数据库后缀选择需要的驱动程序,然后点击完成;我使用的access数据库,数据库后缀为accdb,说明一点:对于mdb 类型的数据库,是老版本access的数据库类型,新版本的access都是accdb,但是也能够打开mdb类型数据库,如果没有Microsoft access driver(*.mdb,*.accdb)百度搜索一下,下载安装就好了;(4)数据源名命名为:ReportSource,数据库选择第一步中新建的数据库ReportData;(5)点击高级选项,设置数据库的登录名和密码分别为:sa和sa2.配置Access数据库(1)打开新建的数据库,新建一个表,表名为ReportData;(2)进入数据库设计视图,按照下图添加3个字段(3)DT栏用于显示时间和日期,必须设置日期/时间格式,默认值设置为下图所示,当数据库中添加条目时,自动显示添加数据时的时间;3.IFIX软件操作(1)新建一个基于时间项调度,间隔设置为5s,动作信息选择VB编辑器,进行脚本编写;(2)VB脚本编写,第一种编写方式具体代码如下:Private Sub FixTimer3_OnTimeOut(ByVal lTimerId As Long)Dim conODBC As ADODB.ConnectionSet conODBC = New ADODB.ConnectionconODBC.ConnectionString = "DSN = ReportSource; UID =sa; PWD =sa;" conODBC.Open "ReportSource", "sa", "sa"conODBC.Execute "insert into ReportData([VL]) values(3433) "conODBC.CloseEnd Sub标红部分,根据实际需要自行修改:DSN:ODBC数据源名;UID:登录名,没有设置时为空;PWD:登陆密码没有设置时为空;ReportData :数据库中表的名称VL:数据库中用于显示数据列的字段名;(3)VB脚本编写,第二种编写方式具体代码如下,此脚本对应的数据库字段格式见最后面的图:Private Sub FixTimer4_OnTimeOut(ByVal lTimerId As Long)Dim conODBC As ADODB.ConnectionDim adoRS As ADODB.RecordsetSet conODBC = New ADODB.ConnectionSet adoRS = New ADODB.RecordsetDim strQuery As StringconODBC.ConnectionString = "DSN = ReportSource; UID =sa; PWD =sa;" conODBC.Open "ReportSource", "sa", "sa"strQuery = "select * from RD where DT=#" & Date & "#" '或者表名FORM 或者SQL 选择语句"adoRS.Open strQuery, conODBC, adOpenDynamic, adLockPessimisticadoRS.AddNewadoRS.Fields(0) = DateadoRS.Fields(1) = 52adoRS.Fields(2) = 98adoRS.Fields(3) = 0adoRS.UpdateadoRS.CloseconODBC.CloseEnd Sub标红部分,根据实际需要自行修改:DSN:ODBC数据源名;UID:登录名,没有设置时为空;PWD:登陆密码没有设置时为空;RD:数据库中表的名称;在VB开发界面中,点击工具-----引用-----勾选引用项如下图,保存脚本,退出保存调度,命名为bbcs;(4)ifix切换至主页-----设置-----用户首选项-----后台启动-----添加bbcs调度,让其后台启动(5)应用程序-----SCU-----配置-----任务,添加FIXBACKGROUNDSERVER.EXE启动任务,启动方式为后台启动,保存SCU配置文件的更改,退出ifix,重启;(6)重启ifix后,软件会自动启动刚才配置的FIXBACKGROUNDSERVER,注意不要关闭此进程,最小化即可;(7)将IFIX切换至运行模式,打开最开始建立的access数据库,可以看到已经有数据了;第一种:第二种:。

VB连接Access数据库的两种方法

VB连接Access数据库的两种方法

VB连接Access数据库的两种方法首先有一点要注意,数据库的使用与我们以往所使用的文本文件不同.例如我们使用文本文件,来记录各种有用的数据.那么大致有以下几步: 读取文件-- 格式化数据-- 关闭文件-- 使用数据如果数据量较大,需要进行筛选,且存放数据的源文件可能不定时变更,那么我们可以用一个临时文件来存放有用的数据,这样可大大提高程序的效率.要[格式化数据]时,我们首先要进行筛选,然后还得进行分类,这样文件中的字符串才能被转换成有用的信息来供程序使用.这样一来,不用说,处理速度将大大减慢,而且就算你设计的数据格式比较科学,当数据量非常大时,文件的容量也会变的让普通计算机无法承受.相对文本文件来说数据库的使用也大致分为以下几步:打开数据库-- 查找数据-- 使用数据-- 关闭数据库从中可以看出,里面少了一步格式化数据,因为数据库本身在存储数据时,它就是按照一定的格式来进行存储的.其次是,数据库与文本文件返回数据的方法不同.如果把文本文件比作一个Textbox 的话,那么数据库更像是一个ListBox.使用文本文件时我们需要从整个Textbox中取出有用的信息,并进行处理,而Listbox则可以根据需要返回特定的某一项.由于VB本身并不带有可以访问数据库的类,所以我们需要引用一个包含能访问数据库的类来使用数据库.这里我们采用ADODB,相比DAO和能访问数据库的API来说,它比DAO更灵活,更强大;而比起API,它更简单易用,更适合初学者.而Access数据库比起SQL,也相对简单了很多,且能够满足中小型应用程序的需要,所以我们在使用数据库时,选择了Access.就像使用文本文件来存储数据一样,我们需要先设计好数据结构,只不过在设计Access数据库的结构时,我们需要用到其它的程序来进行详细的规划.建议采用的程序是office中的Access或V B自带的VISDATA.当数据库设计好了以后,我们可以开始"数据库编程"了.首先,我们需要引用ADO.具体的方法是,在"工程" -- "引用" 中,找到"Microsoft ActiveX Da ta Object *.* Library",这里的"*.*"是指的时ADO的版本号,一般来说,应用程序或ActiveX 控件都具有向下兼容性,所以我们尽可能选择比较新的版本.以确保程序在能识别旧版本Access 的同时,也能识别较新版本的Access.然后我们需要在程序中创建一个对象.就好比我们在窗体上添加一个FileBox才能看到文件名一样,只有创建了ADO对象,我们才能够访问数据库.常用的对象有两个,Connection和Records et.创建这两个对象的具体方法是:1.在引用后,使用New关键字,如Private Conn As New ADODB.ConnectionPrivate Reco As New ADODB.Recordset2.在没引用时,用CreateObject创建对象:Dim Conn,RecoSet Conn =CreateObject("ADODB.Connection")Set Reco =CreateObject("ADODB.Recordset")创建了对象之后,下一步我们要做的就是打开数据库了.先看下面的代码,可以成功的打开数据库.Conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Main.mdb"这句代码打开了D盘中的Main.mdb这个数据库.Connection.Open方法的第一个参数是连接代码,它将传递给系统的数据库引擎.前半部分"Provider=Microsoft.Jet.OLEDB.4.0",它表示了数据库的类型.不同的数据库可能会不同.后半句"Source=d:\main.mdb"它表示了数据库所在的绝对路径.打开数据库之后,还要打开表.假如数据库中有一个表,表名为"Users",字段有两个,一个为用户名,一个为密码.那么看以下代码.1.想返回"Users"中,[用户名]为"去年烟花"的[密码]Recordset.open "Select 密码From Users Where 用户名='去年烟花'",Connection,1, 1之后我们就可以把用户输入的密码进行比较,看是否允许登录.If Recordset.eof and Recordset.bof thenMsgbox "用户不存在!",16ElseIf PassWord =Recordset("密码").value thenmsgbox "登录成功!",64Elsemsgbox "密码错误!",32End IfEnd IfRecordset.Close2.假设Admin已经成功登录系统,我们想把所有的用户名和密码都显示出来Recordset.open "Select * From Users",Connection,1,1这时,表已经被打开,我们就用以下代码把它显示出来.Do whlie Not Recordset.eofPrint "用户名: " & Recordset("用户名").value & "密码: " & Recordset("密码").valueRecordset.MoveNextLoopRecordset.Close由以上代码示例可以看出,打开表时,可以只打开其中的一个字段,也可以打开所有.第一个参数是SQL语句.Select [字段名] From表名[Where 条件]这里的条件可以省略.且字段名也可以用"*"来代替所有字段.需要注意的是,如果你用(1)中的方法打开,那么(2)后面显示的代码就不能再用在(1)中.因为(1)里并没有打开[用户名]字段,所以这一句Recordset("密码")就没有值存在,还有可能出错.后面的条件,可以用"="、">"、"<"等运算符.比如"Where ID >32".(这里假设[ID]为数字型.)这是打开的部分.第二个很重要的部分就是查询记录.数据库它并不是把所有记录全部放到一个变量中备用的.而是以"当前记录"的形式来返回一个值.所以我们想从中找到有用的信息,就必须要对信息进行定位/筛选.定位:移动到下一条Recordset.MoveNext移动到上一条Recordset.MovePrevious移动到最后一条Recordset.MoveLast移动到第一条Recordset.MoveFrist移动到某一条Recordset.Move Number筛选:Recordset.Find "条件"如:[用方法(2)打开表之后]Private Sub Command1_Click()Recordset.Find "用户名=" & "text1.text"If Recordset.Eof <> True ThenMsgbox "该用户的密码是:" & Recordset("密码").value,64ElseMsgbox "未找到该用户的资料!",16End IfEnd SubMoveNext 只有当Eof不为True时,才可用,否则发生错误.而MovePrevious刚是Bof不为T rue时....而只要Eof 和Bof中有一个不为真时,也就是说只要有一条记录时,它就可以使用.Find 方法中的条件和Open时的第一个参数中的条件表述方法是完全一致的.当在已打开的记录集中,找不到该记录时,Eof为True.找到则当前的值就是符合条件的记录.第三个部分就是添加/修改记录.修改记录很简单,先按以上的方法找到相关记录之后,给记录赋值就可以了.比如:[(修改密码)按方法(1)打开表之后]Recordset("密码").value = "123456"Recordset.Updata需要注意的就是,在修改完成后,要调用Updata方法,这样修改才能生效.而添加记录则可以用以下代码来实现:Recordset.addnewRecordset("用户名").value ="Admin"Recordset("密码").value = "Admin"Recordset.Updata这里,先要调用Addnew方法,增加一条新记录,然后对这个新记录中的各字段赋值,最后再调用Updata方法.到这里就差不多了,最后说一下上面提到的几个方法.Recordset.Open SQL语句,数据源,游标类型,打开方法SQL语句不用说了,就是Select那啥的,目的就是按要求从表中返回数据数据源就是一个打开之后的Connection对象.去他妈的游标类型,填1就可以了[偷笑ing]打开方法对应了几个常数,具体哪几个可以从对象浏览器里看.对应数值的意义:1 只读2 独占3 可写4 自已可写,别人可读Connection.open 连接代码,服务器用户名,密码这里的连接代码就不在多说了,服务器用户名,密码只有在连接远程数据库时才用到.VB如何连接access数据库2009年07月25日星期六下午 07:07VB如何连接access数据库?最近在学习VB,正在研究当中!今天告诉大家VB连接数据库的方法,我知道的有两种:一种是在adodc1的属性里设置数据库文件的路径,这种方法的优点是简单易操作,缺点是,当源文件换了地方后,要重新设置数据库的路径,否则连接不上数据库了。

VBA中操作Access数据库的常用方法

VBA中操作Access数据库的常用方法

VBA中操作Access数据库的常用方法VBA (Visual Basic for Applications) 是一种用于自动化各种应用程序的编程语言,它可以与Microsoft Office中的各种应用程序进行交互,包括Access数据库。

在本文中,我们将讨论在VBA中操作Access数据库时常用的方法,希望可以帮助您更好地利用这些方法来处理和管理数据库。

1. 连接到Access数据库连接到Access数据库是进行任何数据库操作的第一步。

我们可以使用ADO (ActiveX Data Objects) 对象来建立与数据库的连接。

下面是一个连接到Access数据库的例子:```vbaDim conn As ADODB.ConnectionSet conn = New ADODB.Connectionconn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\database.accdb;"conn.Open```这段代码创建了一个ADODB.Connection对象,并设置其ConnectionString属性来指定数据库连接字符串,然后通过Open方法打开数据库连接。

2. 执行SQL查询执行SQL查询是从Access数据库中获取数据的常用方法。

可以使用ADODB.Recordset对象来执行查询并获取结果。

以下是一个例子:```vbaDim rs As New ADODB.RecordsetDim strSQL As StringstrSQL = "SELECT * FROM TableName"rs.Open strSQL, conn' 遍历结果Do Until rs.EOF' 处理每一行数据rs.MoveNextLooprs.Close```在这个例子中,我们创建了一个ADODB.Recordset对象,并使用Open方法执行了一个SELECT语句,并将返回的结果集存储在Recordset对象中。

VBA在Access中实现导入外部数据与数据转换详解

VBA在Access中实现导入外部数据与数据转换详解

VBA在Access中实现导入外部数据与数据转换详解在Access数据库管理系统中,Visual Basic for Applications (VBA) 是一种强大的编程语言,它允许用户编写自定义的代码来扩展数据库的功能。

VBA在Access中的一个重要应用是实现导入外部数据和数据转换的功能。

本文将详解如何使用VBA在Access中实现这两个任务。

导入外部数据是指将来自其他数据源的数据导入到Access数据库中。

这些数据源可以是Excel文件、文本文件、数据库等。

使用VBA,可以编写自定义代码来读取外部数据文件,并将其导入到Access数据库中的指定表或查询中。

首先,我们需要使用VBA代码打开外部数据文件。

下面是一个示例代码:```Dim objExcel As ObjectSet objExcel = CreateObject("Excel.Application")objExcel.Workbooks.Open "C:\path\to\external\data.xlsx"```上述代码使用Excel对象来打开一个名为"data.xlsx"的Excel文件。

请注意,你需要将文件路径替换为实际的文件路径。

接下来,我们需要定义一个循环来读取外部数据文件中的每个单元格,并将其插入到Access数据库中的相应位置。

以下是一个示例代码:Dim objWorksheet As ObjectSet objWorksheet = objExcel.ActiveWorkbook.Worksheets(1)Dim i As Integer, j As IntegerFor i = 1 To edRange.Rows.CountFor j = 1 To edRange.Columns.CountCurrentDb.Execute "INSERT INTO TableName (Field1, Field2) VALUES ('" & objWorksheet.Cells(i, j).Value & "', '" & objWorksheet.Cells(i,j+1).Value & "')"Next jNext i```上述代码遍历外部数据文件中的每个单元格,并使用INSERT INTO语句将其插入到Access数据库中的指定表中。

VB与Access连接的方法

VB与Access连接的方法

VB与Access连接的方法VB与Access连接的方法(Ado连接)一、建立数据库因为在Visual Basic 6.0中有的数据库连接方式不支持Access 2000版本格式的数据库,为了便于说明问题,本文所提的数据库以Access 97版本数据库为例。

在Microsoft Access 97中建立一个数据库,如:ssgl.mdb,并设置密码,如:“1234”,再将数据库文件和VB中创建的工程文件放在同一目录下。

如果用户的计算机上只有Access 2000的话,可以先在Access 2000中建立ssgl.mdb数据库,并设置密码,再用Access 2000中的“数据库实用工具”将数据库转换成Access 97版本的格式。

当然也可以直接在Visual Basic 6.0集成开发环境中通过“可视化数据管理器”来创建数据库,再到Access 97中设置密码。

通过对数据库文件设置密码,一般情况下,非法用户就不能用常规的手段打开数据库了,对数据库中的信息起到了一定的安全和保密作用。

二、连接加密的Access数据库在Visual Basic 6.0中,要建立与数据库的连接,可采用的技术手段很多,如:数据控件、数据对象、数据环境设计器等。

开发人员可以根据自身的条件和用户的需求进行选择。

限于篇幅,下面只介绍加密的Access数据库与没有加密的Access数据库在连接时的不同之处。

关于没有加密的数据库的连接及访问的方法读者可以参阅其它资料。

1、使用控件①Data控件Data控件是Visual Basic 6.0中的一个内置数据控件,可以通过设置Data控件的connect、DatabaseName、RecordSource属性实现对数据库的连接和访问。

通过Data控件连接加密的数据库的方法有两种:一种方法是在设计状态时,在“属性窗口”中将Data控件的connect属性的缺省值”Access”改为”; pwd=1234”即可,其它属性的设置方法与没有加密的Access数据库的连接相同。

VBA与Access的联动操作

VBA与Access的联动操作

VBA与Access的联动操作VBA(Visual Basic for Applications)是一种由微软开发的脚本语言,广泛用于自动化和扩展Microsoft Office套件中的应用程序。

Access是Microsoft Office套件中的一种关系型数据库管理系统软件,提供了强大的数据库功能和工具。

通过结合VBA和Access,我们可以实现各种强大的联动操作,提高工作效率和数据处理能力。

VBA与Access的联动操作是基于VBA的编程技术,用于连接和操作Access数据库。

下面将探讨如何使用VBA与Access实现联动操作的几个重要方面。

1. 连接Access数据库在VBA中,我们可以使用ADODB连接对象来连接Access数据库。

首先,需要引用"Microsoft ActiveX Data Objects Library"库。

然后,可以使用以下代码建立与Access数据库的连接:```vbaDim con As New ADODB.Connectioncon.Open "Provider=Microsoft.ACE.OLEDB.12.0;DataSource=C:\Path\to\your\Database.accdb;Persist Security Info=False;"```这段代码创建了一个名为"con"的ADODB.Connection对象,并通过Open方法连接到指定的Access数据库。

在连接字符串中,需要指定数据库文件的路径以及数据库的提供程序。

2. 执行SQL查询一旦与Access数据库建立连接,我们可以使用VBA执行SQL查询语句来检索、插入、更新或删除数据。

以下是一个实例代码,演示如何使用VBA执行SQL查询并获得结果集:```vbaDim rs As New ADODB.Recordsetrs.Open "SELECT * FROM TableName", conDo Until rs.EOF' 处理每一行数据rs.MoveNextLooprs.CloseSet rs = Nothing```在这个例子中,我们使用Recordset对象(rs)执行SELECT语句来检索来自TableName表的所有数据。

VBA操作Access数据库的实用技巧

VBA操作Access数据库的实用技巧

VBA操作Access数据库的实用技巧VBA(Visual Basic for Applications)是一种强大的编程语言,可以与Microsoft Office套件中的许多应用程序一起使用。

其中,与Access数据库的操作结合,可以大大提升工作效率和数据处理能力。

本文将介绍一些VBA 操作Access数据库的实用技巧,帮助您更好地利用VBA来简化和自动化数据库操作。

1. 连接Access数据库VBA可以通过ADO(ActiveX Data Objects)库来连接Access数据库。

首先,需要添加对Microsoft ADO库的引用。

然后,可以使用Connection对象来连接数据库,并指定数据库文件的路径。

下面是一个简单的连接数据库的例子:```vbaDim conn As ObjectSet conn = CreateObject("ADODB.Connection")conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\路径\数据库文件名.accdb;"```2. 创建查询通过VBA可以轻松创建查询并执行。

首先,需要声明一个Recordset对象,然后使用SQL语句来定义查询。

接下来,使用OpenRecordset方法执行查询,并将结果存储在Recordset中。

下面是一个创建查询并执行的例子:```vbaDim rs As ObjectSet rs = CreateObject("ADODB.Recordset")Dim strSQL As StringstrSQL = "SELECT * FROM 表名"rs.Open strSQL, conn```3. 插入数据VBA可以通过Execute方法执行SQL语句,从而向Access数据库中插入数据。

VB怎么能连接访问Access数据库

VB怎么能连接访问Access数据库

VB怎么能连接访问Access数据库有时候我们需要用到VB来连接Access数据库,但是却无从下手,那么VB怎么连接访问Access数据库呢?其实不难,先理清好步骤就行,不懂的朋友请看以下内容。

方法/步骤:1、Access,建立数据库,数据库命名为Database1.mdb。

(注意:这里的后缀是mdb,如果Access是2007版本的,保存的时候要另存为2003版本的才行,因为,VB不直接支持07版的accdb后缀格式!)2、数据库建立后就进入了数据表界面,可以输入数据了,输完以后Ctrl+S保存,输入表名,这里表名为test,OK,准备工作搞定。

2、打开VB,然后新建标准EXE。

3、菜单中找到工程→部件→勾选Microsoft ADO Data Control 6.0及其Microsoft Hierarchical Flexgrid Control 6.0,勾选后左侧工具栏里就多了两个控件即ADODC控件和MSHFlexGrid控件。

4、选择ADODC控件和MSHFlexGrid控件,放在窗体的合适位置5、设置ADODC控件的属性:右键窗体内ADODC1控件。

(1)ADODC属性页→通用→选择使用连接字符串→点击生成→选择Microsoft Jet 4.0 OLE DB Provider 点击下一步→选择之前准备好的数据库→点击测试连接,显示测试成功则OK,确定。

(2)ADODC属性页→记录源→命令类型选择2-adcmdtable,表或存储过程名称选择之前建立的数据表test,点击确定,ADODC属性设置完成。

6、设置MSHFlexGrid控件的属性:VB右侧属性表里,找到datasource,选择adodc1。

7、测试效果:(1)菜单→运行→启动(F5),发现显示的数据排列不是我们想要的行数和列数。

修改方法:(1)MSHFlexGrid属性→通用→设置行和列,固定行和固定列(2)MSHFlexGrid属性→带区→把列标题的√取消掉补充:MySQL 数据库常用命令create database name; 创建数据库use databasename; 进入数据库drop database name 直接删除数据库,不提醒show tables; 显示表describe tablename; 查看表的结构select 中加上distinct去除重复字段mysqladmin drop databasename 删除数据库前,有提示。

VBA与Access配合使用的技巧与实例

VBA与Access配合使用的技巧与实例

VBA与Access配合使用的技巧与实例VBA(Visual Basic for Applications)是Microsoft Office套件中用于自动化任务的编程语言,而Access是一种关系数据库管理系统。

通过将VBA与Access结合使用,可以实现许多自动化和定制化的任务,提高工作效率。

本文将介绍一些常用的VBA与Access配合使用的技巧,并提供一些实例帮助读者更好地理解如何应用这些技巧。

1. 数据库连接与操作VBA可以通过ADO(ActiveX Data Objects)技术与Access数据库建立连接,从而进行各种操作,包括插入、更新、删除和查询数据。

以下是一个例子,演示如何连接到Access数据库并插入一条新记录:```vbaSub InsertRecord()Dim conn As ObjectDim rs As Object' 创建连接对象Set conn = CreateObject("ADODB.Connection")' 连接到Access数据库conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;DataSource=C:\Path\To\Your\Database.accdb;"' 创建记录集对象Set rs = CreateObject("ADODB.Recordset") ' 指定记录集操作的表名rs.Open "YourTableName", conn, 2, 2' 在记录集中插入新记录rs.AddNewrs.Fields("Field1").Value = "Value1"rs.Fields("Field2").Value = "Value2"' ...' 更新记录集中的数据到数据库rs.Update' 关闭连接和记录集rs.Closeconn.Close' 清理对象变量Set rs = NothingSet conn = NothingEnd Sub```以上代码示例了如何连接到Access数据库,并插入一条新记录到指定的表中。

VBnet数据导入ACCESS的函数

VBnet数据导入ACCESS的函数

' VB数据导入ACCESS的函数' 的学习资料不好找,经几天的学习,编了个数据导入ACCESS的自定义函数,使用这个函数就很方便的''导入数据到生成的ACCESS文件中了,在使用这个函数之前要先有一个含有数据的表, 在' ' XP+VB2010+ACCESS2003下测试通过,,,,下面是正题:Imports System.Data.SqlClientImports ADOXImports System.Data.OleDb'先加入命名空间Private Sub File_Access(ByVal FileName As String, ByVal TabName As String, ByVal DataTab As Object) 'MDB’’名,’表名,一个表,自定义函数Dim Cata As New ADOX.CatalogDim Tabe As New ADOX.Table()Dim SaveFile As StringDim sqlString As String'1.先判断要生成的ACCESS文件是否存在,如果存在先删除SaveFile = Application.StartupPath & "\" & FileName & ".mdb"If puter.FileSystem.FileExists(SaveFile) = True Thenputer.FileSystem.DeleteFile(SaveFile) '删除文件''2.生成一个符合条件的ACCESS文件,所删除符合就是和要导入的内存中的表结构相同Cata.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + SaveFile + ";")Tabe.ParentCatalog = Cata = TabNameTabe.Columns.Append("登记号", ADOX.DataTypeEnum.adInteger)Tabe.Columns.Append("药品名称",ADOX.DataTypeEnum.adVarWChar, 50)Tabe.Columns.Append("拼音简码五笔简码",ADOX.DataTypeEnum.adVarWChar, 50)Tabe.Columns.Append("药品类别",ADOX.DataTypeEnum.adVarWChar, 20)Tabe.Columns.Append("剂型规格单位",ADOX.DataTypeEnum.adVarWChar, 50)Tabe.Columns.Append("单价", ADOX.DataTypeEnum.adVarWChar, 20) Tabe.Columns.Append("成本价", ADOX.DataTypeEnum.adVarWChar, 20)Tabe.Columns.Append("医保类型",ADOX.DataTypeEnum.adVarWChar, 20)Tabe.Columns.Append("状态", ADOX.DataTypeEnum.adVarWChar, 20) Tabe.Columns.Append("库存量", ADOX.DataTypeEnum.adVarWChar, 20)Tabe.Columns("登记号").Properties("autoincrement").Value = True '自动编号'Tabe.Keys.Append("PrimaryKey", ADOX.KeyTypeEnum.adKeyPrimary, "登记号") '主键Tabe.Columns("药品名称").Properties("Nullable").Value = True '设非必填字段Tabe.Columns("拼音简码五笔简码").Properties("Nullable").Value = TrueTabe.Columns("药品类别").Properties("Nullable").Value = TrueTabe.Columns("剂型规格单位").Properties("Nullable").Value = TrueTabe.Columns("单价").Properties("Nullable").Value = TrueTabe.Columns("成本价").Properties("Nullable").Value = TrueTabe.Columns("医保类型").Properties("Nullable").Value = TrueTabe.Columns("状态").Properties("Nullable").Value = TrueTabe.Columns("库存量").Properties("Nullable").Value = TrueCata.Tables.Append(Tabe)'3.连接ACCESS文件Dim MyConn As NewOleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source= " & SaveFile)MyConn.Open() '打开链接'4打开要导入的表添加记录Dim command As OleDb.OleDbCommand = NothingFor jj As Integer = 0 To DataTab.Rows.Count - 1 '循环数据源(即要导入的源表)sqlString = ""For m As Integer = 1 To 8 '循环列导入相应值sqlString = sqlString & "'" & DataTab.Rows(jj)(m).ToString & "', "NextsqlString = Microsoft.VisualBasic.Left(sqlString, Len(sqlString) - 2)'执行SQL语句,句子较长,注意command = New OleDbCommand("INSERT INTO " & TabName & " (药品名称,拼音简码五笔简码,药品类别,剂型规格单位,单价,成本价,医保类型,状态) VALUES (" & sqlString & ")", MyConn)command.ExecuteNonQuery()Next'5.断开数据源并内存清理command.Dispose()command = NothingMyConn.Close()MyConn.Dispose()MyConn = Nothing'6.对打开的ACCESS文件进程和内存清,完全断开ACCESSCata.ActiveConnection.Close()System.Runtime.InteropServices.Marshal.ReleaseComObject(Tabe)System.Runtime.InteropServices.Marshal.FinalReleaseComObject(Tabe)System.Runtime.InteropServices.Marshal.ReleaseComObject(Cata)System.Runtime.InteropServices.Marshal.FinalReleaseComObject(Cata)Cata = NothingGC.WaitForPendingFinalizers()GC.Collect()GC.WaitForPendingFinalizers()GC.Collect()MsgBox("导入成功")End Sub' ‘使用举例Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.ClickCall File_Access("目录", "目录", Tbl) 'Tbl是一个含有数据的表,比如' Dim RptTable As New DataTableEnd Sub。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Private Function ImportFromExcel(excelFile As String) As Long
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim rst As New ADODB.Recordset
Dim nCount As Long, strCardNo As String
On Error GoTo errH
Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Open(excelFile) '打开EXCEL文件
Set xlSheet = xlBook.Sheets(1) '打开第一页(sheet)
ImportFromExcel = 0
'打开数据库
rst.Open "...", pConn, adOpenKeyset, adLockOptimistic, adCmdText
'开始导入。

导入过程检查数据是否有重复。

nCount = 1
Do
strCardNo = Trim(xlSheet.Cells(nCount, 1))
'这里根据第一列数据为空判断记录结束
If Len(strCardNo) = 0 Then
ImportFromExcel = nCount - 1
Exit Do
End If
If Not rst.EOF Then rst.Find ("STCardNO='" & strCardNo & "'")
If rst.EOF Then
rst.AddNew
rst("STCardNO") = Format(strCardNo, "0000000000")
...
rst.Update
Else
If MsgBox("卡号:" & strCardNo & " 已经存在。

" & vbCrLf & "选择“重试”将忽略并继续导入余下的数据,“取消”将放弃导入。

", vbExclamation + vbRetryCancel + vbDefaultButton2, "卡号重复") = vbCancel Then
ImportFromExcel = nCount - 1
Exit Do
End If
End If
nCount = nCount + 1
ImportFromExcel =nCount
Loop
'销毁对象释放资源
rst.Close
Set rst = Nothing
Set xlSheet = Nothing
Set xlBook = Nothing
xlApp.Quit '关闭Excel Set xlApp = Nothing
Exit Function
errH:
ImportFromExcel = -1 End Function。

相关文档
最新文档