VBA将Excel数据导入到数据库

1、如果Excel中的数据是标志格式的,即标题栏+数据这种类型,那么导入数据库将非常方便,示例代码如下:

'函数:导入
Private Function F_K_Import() As Boolean
    Dim cnCurrent As ADODB.Connection
    Dim rcdTemp As ADODB.Recordset
    Dim rcdChecker As ADODB.Recordset
    Dim strSql As String
    Dim ExcelApp
    Dim ExcelWorkBook
    Dim strWorkSheetName As String

On Error GoTo ErrHandle
    F_K_Import= False
    
    DoCmd.SetWarnings False
    
    Set ExcelApp = CreateObject("Excel.Application")
    ExcelApp.Visible = False
    
    Set ExcelWorkBook = ExcelApp.WorkBooks.Open(Trim(Me.txt_Import.Value))
    strWorkSheetName = ExcelWorkBook.WorkSheets(1).Name
    ExcelWorkBook.Close
    
    Set ExcelWorkBook = Nothing
    Set ExcelApp = Nothing

    strSql = "SELECT * INTO [T_K] FROM [Excel 5.0;HDR=YES;IMEX=2;DATABASE=" & Trim(Me.txt_Import.Value) & "].[" & strWorkSheetName & "$]"
    DoCmd.RunSQL strSql
    
    DoCmd.SetWarnings True
    
    F_K_Import= True
On Error GoTo 0
    Exit Function

ErrHandle:
    DoCmd.SetWarnings True
    MsgBox Error(Err), vbExclamation
End Function

2、导入非标准格式的Excel时,基本方法是使用循环去读取Excel中的数据,示例代码如下:

	Do While (strTradeNo <> "")
          strTradeDate = ExcelWorkSheet.Cells(intRow, 2).Value
          strProductVariety = ExcelWorkSheet.Cells(intRow, 3).Value
          strValueDate = ExcelWorkSheet.Cells(intRow, 4).Value
          strFixedRatePayer = ExcelWorkSheet.Cells(intRow, 5).Value
          strFixedRate = ExcelWorkSheet.Cells(intRow, 6).Value
          strFloatRatePayer = ExcelWorkSheet.Cells(intRow, 7).Value
          strBPs = ExcelWorkSheet.Cells(intRow, 8).Value

          strSql = "INSERT INTO [T_LiquidationNotice](Ccy,CustomerName,SubmitDate,ReportDate,TradeNo,TradeDate,ProductVariety,ValueDate,FixedRatePayer,FixedRate,FloatRatePayer,BPs) values ( '" & strCCY & "','" & strCustomerName & "',#" & strSubmitDate & "# ,#" & strReportDate & "#,'" & strTradeNo & "',#" & strTradeDate & "#,'" & strProductVariety & "',#" & strValueDate & "#,'" & strFixedRatePayer & "'," & strFixedRate & ",'" & strFloatRatePayer & "'," & strBPs & ")"
          DoCmd.RunSQL strSql
          intRow = intRow + 1
          strTradeNo = ExcelWorkSheet.Cells(intRow, 1).Value
       Loop


  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值