[ad_1]
これは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 を使用したデータへのアクセス[^]
[ad_2]
コメント