Public Sub DAO录入方法1()
Dim myData As String, myTable As String, SQL As String
Dim wb As Workbook
Dim ws As Worksheet
Dim myDb As DAO.Database
Dim myTbl As DAO.TableDef
Dim myRs As DAO.Recordset
Set wb = ThisWorkbook
Set ws = wb.Sheets("订单表")
myData =ThisWorkbook.Path & "\MyDB.mdb"
myTable = "订单"
If Dir(myData) = "" Then
Set myDb = CreateDatabase(myData, dbLangChineseSimplified)
Set myTbl = myDb.CreateTableDef(myTable)
With myTbl
.Fields.Append .CreateField("序号", dbSingle)
.Fields.Append .CreateField("商品代码", dbText, 50)
.Fields.Append .CreateField("数量", dbSingle)
.Fields.Append .CreateField("商品名称", dbText, 50)
.Fields.Append .CreateField("规格", dbText, 50)
.Fields.Append .CreateField("配货价", dbSingle)
.Fields.Append .CreateField("零售价", dbSingle)
.Fields.Append .CreateField("订货金额", dbSingle)
.Fields.Append .CreateField("发货日期", dbText, 50)
.Fields.Append .CreateField("规格数", dbSingle)
.Fields.Append .CreateField("门店代码", dbText, 50)
.Fields.Append .CreateField("自动编号", dbSingle)
End With
myDb.TableDefs.Append myTbl
Else
Set myDb = OpenDatabase(myData)
For Each myTbl In myDb.TableDefs
If LCase(myTbl.Name) = LCase(myTable) Then GoTo hhh
Next myTbl
Set myTbl = myDb.CreateTableDef(myTable)
With myTbl
.Fields.Append .CreateField("序号", dbSingle)
.Fields.Append .CreateField("商品代码", dbText, 50)
.Fields.Append .CreateField("数量", dbSingle)
.Fields.Append .CreateField("商品名称", dbText, 50)
.Fields.Append .CreateField("规格", dbText, 50)
.Fields.Append .CreateField("配货价", dbSingle)
.Fields.Append .CreateField("零售价", dbSingle)
.Fields.Append .CreateField("订货金额", dbSingle)
.Fields.Append .CreateField("发货日期", dbText, 50)
.Fields.Append .CreateField("规格数", dbSingle)
.Fields.Append .CreateField("门店代码", dbText, 50)
.Fields.Append .CreateField("自动编号", dbSingle)
End With
myDb.TableDefs.Append myTbl
hhh:
End If
n = ws.Range("A65536").End(xlUp).Row
For I = 3 To n
SQL = "select * from " & myTable _
& " where 序号=" & Cells(I, 1).Value _
& " and 商品代码='" & Cells(I, 2).Value & "'" _
& " and 数量=" & Cells(I, 3).Value _
& " and 商品名称='" & Cells(I, 4).Value & "'" _
& " and 规格='" & Cells(I, 5).Value & "'" _
& " and 配货价=" & Cells(I, 6).Value _
& " and 零售价=" & Cells(I, 7).Value _
& " and 订货金额=" & Cells(I, 8).Value _
& " and 发货日期='" & Cells(I, 9).Value & "'" _
& " and 规格数=" & Cells(I, 10).Value _
& " and 门店代码='" & Cells(I, 11).Value & "'" _
& " and 自动编号=" & Cells(I, 12).Value
Set myRs = myDb.OpenRecordset(SQL)
If myRs.BOF And myRs.EOF Then ' 如果数据表中没有工作表的某行数据,就添加到数据表
myRs.AddNew
For j = 1 To myRs.Fields.Count
myRs.Fields(j - 1) = Cells(I, j).Value
Next j
myRs.Update
Else: myRs.Edit '如果数据表中有工作表的某行数据,就将数据进行更新
For j = 1 To myRs.Fields.Count
myRs.Fields(j - 1) = Cells(I, j).Value
Next j
myRs.Update
我想要这里添加上一条如果序号、门店代码、自动编号相就更新数量的方法,如何添加,在线等,急! End If
Next I
If MsgBox("数据上传完毕; 是否直接打印", vbInformation + vbYesNo, "提示") = vbYes Then
ws.PrintOut copies:=2, collate:=True
End If
myRs.Close
myDb.Close
Set wb = Nothing
Set ws = Nothing
Set rs = Nothing
Set myRs = Nothing
Set myTbl = Nothing
Set myDb = Nothing
End Sub