如何用vba更新数据源

如何用vba更新数据源,第1张

1、VBA的数据源可以是自身的表格,也可是是数据库(例如access)

2、更新数据库可以通过VBA做增删改查的 *** 作

3、对于表格自身 可以读出数据更改。也可以直接写入excel

以下是我用了实现从Excel导数据进ACCESS的代码,你参考一下,应该就可以做出来了:(Excel和Access两个文件放一个文件夹下)

Public Sub 客户正常供价批量维护()

If Cells(4, 6) = "" Then

MsgBox "请先选择需要维护价格的系统!", vbInformation

Cells(4, 6).Select

Exit Sub

Else

Dim i As Integer, j As Integer, k As Integer, sht As Worksheet 'i,j,k为整数变量;sht 为excel工作表对象变量,指向某一工作表

Dim cn As New ADODB.Connection '定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用

Dim rs As New ADODB.Recordset '定义记录集对象,保存数据表

Dim strCn As String, strSQL As String '字符串变量

Dim mdbFile As String

On Error GoTo add_err

mdbFile = ActiveWorkbook.Path &"\DY_DATA.mdb"

strCn = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &mdbFile '定义数据库链接字符串

cn.Open strCn '与数据库建立连接,如果成功,返回连接对象cn

Set rs = New ADODB.Recordset

rs.Open "dbl直营客户正常供价表", cn, adOpenKeyset, adLockOptimistic

k = Cells(4, 8) + 8

For i = 9 To k

If Cells(i, 7) = "" Then

Else

rs.AddNew

rs(1) = Cells(i, 2)

rs(2) = Cells(i, 7)

rs(3) = Cells(i, 8)

rs.Update

Cells(i, 7) = ""

Cells(i, 8) = ""

End If

Next

MsgBox "数据记录添加成功!", vbInformation

Cells(4, 6).Select

ActiveWorkbook.RefreshAll

add_exit:

Exit Sub

End If

add_err:

MsgBox Err() &vbCrLf &Error()

Resume add_exit

End Sub

'// 创建ADO记录集对象

   Set adoRt = CreateObject("ADODB.RecordSet")

  

   '// 设置SQL 语句

   strSQL = "SELECT * FROM TMB WHERE False"

  

   With adoRt

      '// 设置需要连接数据库

      .ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=D:\TM.mdb"

      .CursorLocation = 3

      .CursorType = 1

      .LockType = 3

     

      '// 设置SQL语句

      .Source = strSQL

      '// 准备打开记录集

      .Open

        

    '删除TMB表中的所有记录

     if adort.recordcount<>0 then

        adort.movefirst

        do while not adort.eof

            adort.delete

            adort.movenext

        loop

    endif

      '// 新增记录

      .AddNew

      '// 赋值

      .Fields("TMZF").Value = Range("识别号")

      '// 更新

      .Update

     

      '// 判断并关闭记录

      If .State = 1 Then

         .Close

      End If

   End With

  

   '// 从内存中释放

   Set adoRt = Nothing


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9594200.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存