• ベストアンサー

Accessから主キーの無いOracleテーブルにVBAで主キー設定付のODBC接続するには

Oracle7--------------- Access97 Workgroup Server Release 7.3.2.2.1 TABLE_A----------------ODBC接続(リンクテーブル)     項目1 項目2 項目3 項目4 項目1~項目4は 空白レコードがあり 主KEYが張れない ******************************************************************** 主キーの作成出来ないオラクルテーブルがあります。 Access97からODBC接続を作成する時は (1)マニュアルであれば   対象テーブルに主キーが無ければ 任意の10項目を仮の主キーとして設定出来ますが (2)VBA(自動?)で リンク張ると Dim tab01 As TableDef  Dim db01 As Database  Dim strTABname As String strTABname = TABLE名 Set db01 = CurrentDb Set tab01 = db01.CreateTableDef(UserName & "_" & strTABname, dbAttachSavePWD) tab01.SourceTableName = UserName & "." & strTABname tab01.CONNECT = "ODBC;DSN=****;UID=" & UserName & ";PWD=" & Password & ";ConnectString=con;" db01.TableDefs.Append tab01 主キー設定の無いODBC接続が出来て   データの更新などが出来なくなります。 VBAでも仮の主キー設定付きのODBC接続は  出来ないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

手元にACC97は無いのですが、擬似インデックスを作成すれば可能だったはず。 作成方法は通常のINDEX作成と変わりはありません。 db01.Execute "CREATE INDEX ・・・・;"

COS_BUSTER
質問者

お礼

CREATE INDEX でヘルプを見たら 記述方法が書いてました。 擬似インデックスを張る事が出来ました。 ありがとうございました。

その他の回答 (1)

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

Oracleをいじったこともない身ではありますが、おもいつきを1点だけ。 (以下、Accessに準じるものとして解説) 1)Oracle側で新規フィールドを追加(ID) 2)そのテーブルをレコードソースとするフォームを作成(NewF) 3)先頭レコードから順次、IDに「Forms!NewF.CurrentRecord」を代入 4)IDに主キーを設定 上記手順を踏んで、新しく主キーフィールドを作るというのでは駄目なのでしょうか? (データはその分かさみますが)

COS_BUSTER
質問者

補足

DexMachina と同じような事は考えました。 この方法は解決策の1つなのですが 私が望んでるというか 期待してるのは VBAでリンクを張る時に主キー設定のパラメータは無いのかな? と言う事です。 アクセスのヘルプに無かったので 無い物ねだりの可能性が高いのですが・・・

関連するQ&A