【解決方法】Access データベースの SQL 文字列

プログラミングQA


これはSQL文字列を実行していません:

conn.execute "SELECT * FROM VSOP87-0;

「VSOP87-0」という「VSOP87-J2000.accdb」にテーブルがあります。 この構成の正しい SQL 文字列を記述するにはどうすればよいですか。

VB
Dim conn As Object
Dim rs As Object
Set conn = CreateObject("ADODB.Connection")  'New ADODB.Connection
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data source=J:\0-Access\VSOP87-J2000.accdb;"
conn.execute "SELECT * FROM VSOP87-0;"
Set rs = CreateObject("ADODB.Recordset")

i = 0
If rs.EOF = False Then
    Do While Not rs.EOF
        A0(i, 0) = rs("A0mer").Value
        B0(i, 0) = rs("B0mer").Value
        C0(i, 0) = rs("C0mer").Value
        A0(i, 1) = rs("A0ven").Value
        B0(i, 1) = rs("B0ven").Value
        C0(i, 4) = rs("C0ven").Value
        A0(i, 2) = rs("A0ear").Value
        B0(i, 2) = rs("B0ear").Value
        C0(i, 2) = rs("C0ear").Value
        A0(i, 3) = rs("A0mar").Value
        B0(i, 3) = rs("B0mar").Value
        C0(i, 3) = rs("C0mar").Value
        A0(i, 4) = rs("A0jup").Value
        B0(i, 4) = rs("B0jup").Value
        C0(i, 4) = rs("C0jup").Value
        A0(i, 5) = rs("A0sat").Value
        B0(i, 5) = rs("B0sat").Value
        C0(i, 5) = rs("C0sat").Value
        A0(i, 6) = rs("A0ura").Value
        B0(i, 6) = rs("B0ura").Value
        C0(i, 6) = rs("C0ura").Value
        A0(i, 7) = rs("A0nep").Value
        B0(i, 7) = rs("B0nep").Value
        C0(i, 7) = rs("C0nep").Value
        i0 = i
        i = i + 1
        rs.MoveNext
    Loop
End If
conn.Close
rs.Close
Set conn = Nothing
Set rs = Nothing

私が試したこと:

私が試してみました:

VB
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

これによりエラーが発生します。

rs(“A0mer”) の .value がどのように機能するかはわかりません。

解決策 1

以下を参照して、接続文字列の正しい形式を知ることができます。 接続文字列[^]!

Access DB の形式は次のとおりです。
標準セキュリティ

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;Persist Security Info=False;

データベースパスワードあり (これは、Access の「データベース パスワードの設定」機能を使用してパスワードで保護された Access 2007 – 2013 データベースがある場合に使用する接続文字列です):

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;Jet OLEDB:Database Password=MyDbPassword;

あなたのケースは、次のようになります。

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=J:\0-Access\VSOP87-J2000.accdb;Persist Security Info=False;

データ通信に関する詳細情報は、ここで読むことができます: ADO.NET を使用したデータへのアクセス[^]

コメント

タイトルとURLをコピーしました