【VB操作access数据库问题】

来源:百度知道 编辑:UC知道 时间:2024/06/27 08:33:34
我现在有个小程序,程序目标是,5个数据a,b,c,d,e,
a 的范围是00000-99999,
b 的范围是00-99,
c 的范围是0000-9999,
d 的范围是0000000000-9999999999,
e 的范围是0-9,
这5个字段合到一起就是一个产品的条码,其中a,b,c,这三个数据选定后基本不变,数据d每隔1s后会自动加一,数据e是校验位会根据a,b,c,d的变化而变化,最终A&B&C&D&E形成一个条码。并将该条码及其对应的数据a,b,c,d,e存到数据库的对应字段中。

现在问题是:
我想用vb操作一个指定的ACCESS数据库(excel也可以)如code128.mdb,表名也是code128,来自动保存a,b,c,d,e及A&B&C&D&E这六个数据,请问大侠该如何设置VB连接数据库,并自动增加数据库记录????
另外我的mdb数据库文件是和程序在同一目录的,目标是把这个文件夹复制的任何地方,程序都能够正常运行。不要换了目录,就找不到数据库了,那就麻烦了 。从别的地方资料看,应该是用ADO控件,具体操作内容还不知道,希望大侠指导。
-----------------------------------------------
只需要增加内容,不需要显示出来,应该不需要datagrid控件。
-------------------------------------------------
自动加1后的数据,需填写到新的一行,不能覆盖了老的数据
----------------------------------------------------
格式:客户名称-产品类别-制造商-产品编号-校验位
格式:a---------b--------c----------d-----e
格式:a---------b--------c----------d+1---e(新计算的)
---------------------------------------------------------------------------
如果大伙给的方案可行

Public Function Get_New_Code() As String
Dim aDB As New ADODB.Connection
Dim aR As New Recordset
Dim sCnn As String, Ans As String
Dim crc As Integer, n As Long

'连接
sCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\code128.mdb;Persist Security Info=False;Jet OLEDB"
aDB.Open sCnn

aR.Open "code128", aDB, adOpenDynamic, adLockOptimistic
aR.MoveFirst

'计算新的D,E,校验算法过程自己做。由于应该每一秒d加1,所以你表中应该有上次生成的时间。
'每次d 得加上两次读取相差的秒数。
n = aR!d + DateDiff("s", aR!lasttime, Now)
crc = get_crc(aR!A, aR!b, aR!c, n)

'得出结果
Ans = Format(aR!A, "00000") & Format(aR!b, "00") & Format(aR!c, "0000") & Format(n, "0000000000") & Format(crc, "0")

'保存
aR!lasttime = Now
aR!d = n
aR.Update

aR.Close
Set aR