0

Excel から Access データベースにデータをプッシュする方法を探していました。以下のコードを見つけましたが、改善方法がわかりません。

Dim wsQS As Worksheet
Dim sConnect As String
Dim sCommand As String
Dim adoCn As ADODB.Connection

Set wsQS = Worksheets("QueryStrings")
Set adoCn = New ADODB.Connection
sConnect = wsQS.Range("rngConnect").Value
sCommand = wsQS.Range("rngCommand").Value

' Get ADO connection to the workbook
adoCn.Open sConnect
' Append data from Excel worksheet
adoCn.Execute sCommand

' Close the connection to the workbook
adoCn.Close
Set adoCn = Nothing
Worksheets("CopyToDB").Range("DataToExport").Offset(1, 0).ClearContents
Worksheets("Proj DB").Activate

Set wsQS = Nothing

建築

                 ------------------
                |       web        |
                |       page       |
                 ------------------
                          |
                          |
                          |
            Python and BS4(Data Extraction)
                          |
                          |
                          |
                 ------------------                               
                |       Excel      |
                |       data       |
                 ------------------
                          |
                          |
                          |
             Python to Push Data(Oracle/Access)
                          |
                          |
                          |
                 ------------------
                |       Any        |
                |       DB         |
                 ------------------
4

2 に答える 2

2

ほぼどこからでも (VBScript、VBA) 実行でき、Excel から Access でテーブルを作成できるものはどうでしょうか。ほとんどすべての有効な SQL を実行できます。

Set cn=CreateObject("ADODB.Connection")

cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=z:\docs\test.accdb"

sSQL = "SELECT * INTO FromExcel " _
     & "FROM [Excel 8.0;HDR=YES;DATABASE=Z:\Docs\Test.xls].[Sheet1$]"

cn.Execute sSQL, recs

MsgBox "Records: " & recs

ジェット SQL

Fundamental Microsoft Jet SQL for Access 2000
Intermediate Microsoft Jet SQL for Access 2000
Advanced Microsoft Jet SQL for Access 2000

于 2013-01-06T17:08:45.200 に答える
1

@Remou の提案を試してみましたが、自分の構成 (Office 2010) で動作させることができませんでした。これは、 Microsoft Dev Forumsから盗んだもので、あらゆる種類の SQL クエリ (選択/挿入/削除など) で完全に機能します。

Public Sub updateAccess()

Dim con As New ADODB.Connection
Dim connectionString As String

Dim sql, newTable As String
Filename = "C:\test.accdb"
connectionString = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" & Filename

con.Open connectionString

' Save current table ("BEFORE") to another table ("BEFORE_yyyymmdd_hh_mmss")
newTable = "BEFORE_" & Format(Date, "yyyymmdd") & "_" & Format(Now, "hhmmss")
sql = "SELECT CODE, STORE INTO " & newTable & " FROM BEFORE"
con.Execute sql

' Delete rows of current table ("BEFORE")
sql = "DELETE FROM BEFORE"
con.Execute sql

' Insert new rows into current table ("BEFORE") from my Excel Sheet
sql = "INSERT INTO BEFORE ([CODE], [STORE]) " & _
      "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & ThisWorkbook.FullName & "].[" & ThisWorkbook.Sheets("CODE_BY_STORE").Name & "$]"
con.Execute sql

con.Close
Set con = Nothing

End Sub

これは魅力のように機能します!お役に立てれば...

于 2014-04-25T13:12:11.827 に答える