潜伏也需要技术

VBA执行SQL语句

上一篇 / 下一篇  2013-03-27 09:27:28 / 个人分类:自动化测试

' ExcelTools->References中要选中Microsoft ActiveX Data Objects 2.0 Library

1、执行SQL语句

 

Sub执行SQL语句()

    Dim strSQL As String

   

    strSQL = "insert into TableName(recNum, personName) values(1,'LEE')"

    Call ExecuteSQL(strSQL)

    MsgBox "Completed."

End Sub

 

Sub ExecuteSQL(strSQL)

    Dim sqlserver, database, username, password As String

    Dim cn As New ADODB.Connection      '定义数据链接对象,保存连接数据库信息

    Dim strCn As String

 

    Set workSht = ThisWorkbook.Worksheets("测试数据")

    sqlserver = workSht.Cells(2, 1).Value

    database = workSht.Cells(2, 2).Value

    username = workSht.Cells(2, 3).Value

    password = workSht.Cells(2, 4).Value

  

     '定义数据库链接字符串

    strCn = "Provider=sqloledb;Server=" & sqlserver & _

            ";Database=" & database & _

            ";Uid=" & username & _

            ";Pwd=" & password & ";"

     

    '与数据库建立连接

    cn.Open strCn

   

    '执行该SQL命令串

    cn.Execute strSQL

   

    '关闭数据库链接,释放资源

    cn.Close

End Sub

 

 

2、获取SQL数据库记录

Sub返回表中Remark()

    Dim orderSht As Worksheet

    Dim beginrow, endrow, runFlag, RecNum, pbuType, pbuCode, confirmTable, retRemark As String

    Dim icounter As Integer

  

   

    Set rderSht = ThisWorkbook.Worksheets("测试数据")

    beginrow = orderSht.Cells(1, 2).Value        '获取开始行,假设为6

    endrow = orderSht.Cells(2, 2).Value          '获取结束行,假设为10

   

    For icounter = CLng(beginrow) To CLng(endrow)

        runFlag = orderSht.Cells(icounter, 1).Value     '检查6~10A列的标志是否为Y,是就执行,否则不执行

        If LCase(runFlag) = "y" Then

            RecNum = orderSht.Cells(icounter, 2).Value

            TableName = orderSht.Cells(icounter, 3).Value

            retRemark = ReturnRemark(RecNum, TableName)     'TableNameRecNum对应记录的Remark字段值返回

            orderSht.Cells(icounter, 4).Value = retRemark

        End If

    Next

    MsgBox "Completed."

End Sub

 

Function ReturnRemark(RecNum, confirmTable)

    Dim sqlserver, database, username, password As String

 

    sqlserver = "198.168.1.1"

    database = "testDB"

    username = "sa"

    password = "sa"

   

    Dim strCn, strSQL As String

    Dim cn As New ADODB.Connection      '定义数据链接对象,保存连接数据库信息

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

    Dim remark As Variant

   

     '定义数据库链接字符串

    strCn = "Provider=sqloledb;Server=" & sqlserver & _

            ";Database=" & database & _

            ";Uid=" & username & _

            ";Pwd=" & password & ";"

   

    strSQL = "select rec_num,remark from " & confirmTable & " where rec_num = " & RecNum

 

    cn.Open strCn                        '与数据库建立连接

    rs.Open strSQL, cn                   '执行该SQL命令串

    remark = rs("remark")                '返回确认表remark

    rs.Close                             '关闭记录集

    cn.Close                             '关闭数据库链接,释放资源

    ReturnRemark = remark

End Function

 

 


TAG: SQL VBA

 

评分:0

我来说两句

nikey.lee

nikey.lee

人生如戏,笑看今朝。

日历

« 2024-05-06  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 11130
  • 日志数: 6
  • 图片数: 1
  • 建立时间: 2009-05-17
  • 更新时间: 2013-03-27

RSS订阅

Open Toolbar