Microsoft Access 掲示板

Access64bit版だと、帳票フォームのテキストボックスに#Name?が表示されます / 7

12 コメント
views
4 フォロー
7
mayu 2021/08/31 (火) 19:44:40 修正 ef559@a99f1 >> 6

結論から申し上げると
リンクテーブルを作った時点で ADO を使う必要は無いでしょう。
  

データはSQLServer上にあり、リンクテーブルからADOdbで読んでいます。

  
Accessのオブジェクト構造とミドルウェアの選定がミスマッチという印象を受けます。

Set Me.Recordset = rs

は、OLEDB 接続した SQLServer の Recordset を
ダイレクトにAccessフォームへバインドするときに有効な方法ですから
ローカルにリンクテーブルが存在する現在の構成ですと、このコードは不要です。
王道の連結フォームでAccessデータベースを運用すればいいでしょう。

strSQL = "SELECT * FROM リンクテーブル
rs.Open strSQL, cn, adOpenStatic, adLockOptimistic
cn はADOBE.Connection としてSQLServerに接続しています。

  
これは 32bit, 64bit に関係なく問題があるでしょう。
リンクテーブルは、ローカルにあるのに
ADODB.Connection はローカルではなく、サーバーに接続しています。

また、リンクテーブルというのは 外部データベースのスキーマを
Access用に変換したテーブルですから、操作は ADO ではなく、DAO でおこないましょう。

最後に、動作がおかしくなるのは おそらく
64bitアプリにおいて、32bitアプリ用のODBCドライバを使っているからでしょう。
64bitのODBCドライバを使ってリンクテーブルを作成して下さい。

通報 ...