前提
Pythonを用いて、Microsoft Accessからデータを抽出しようと試みています。
実現したいこと
任意の複数のワードで、特定のフィールドから該当するデータを抽出(表示)したいのですが、記述方法がわかりません。
下のように一般的なSQL構文を参考にORやANDで条件を書き加えてみましたが、エラーが出てしまいました。
またウェブ検索のように、ワード個数があらかじめ決まっていない、スペースで区切った複数のワードでデータベースを検索するには、どのように書けばよいでしょうか?
ご回答よろしくお願いします。
発生している問題・エラーメッセージ
python
1Traceback (most recent call last): 2 File "c:\***\test.py", line 12, in <module> 3 sql = "SELECT * FROM % WHERE country='アフリカ' OR country='ドイツ';" % tbl 4ValueError: unsupported format character 'W' (0x57) at index 16
該当のソースコード
python
1import pyodbc 2import pandas as pd 3 4con_str = 'Driver={{Microsoft Access Driver (*.mdb, *.accdb)}};Dbq={0};'.format(r"C:\***\db.accdb") 5conn = pyodbc.connect(con_str) 6cur = conn.cursor() 7 8# テーブル名 9tbl = "users" 10 11# 検索、表示(countryカラムがアフリカ、もしくはドイツのフィールドを検索) 12sql = "SELECT * FROM % WHERE country='アフリカ' OR country='ドイツ'" % tbl 13df = pd.read_sql(sql_s, conn) 14print(df)
補足情報(FW/ツールのバージョンなど)
Python 3.9.7
Windows 11
Microsoft Access 2021
pyodbc 4.0.31

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。