• 締切済み

VB6(SP5)で、Accessのテーブルをリンクしたいのです。

いつも、質問ばかりで、恐縮です。(^^; VB6(SP5)で、プログラミングをしております。 Access のMAIN.MDB に、SUB.MDBの中の[TEST]テーブルを リンクしたいのです。が、方法がよく解かりません。 それぞれのMDBには、パスワードがかかっています。 助言の程、宜しくお願い致します。

みんなの回答

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

MAIN.MDBを開きメニューの[ファイル]→[外部データの取り込み]→[テーブルのリ ンク]かテーブルで右クリックで[テーブルのリンク]を選びSUB.MDBを選択すると テーブルのリンクにSUB.MDBのテーブル名が表示されますのでその中から[TEST]テ ーブルを選びOKボタンをクリックすればリンクできます。 ⇒のリンクマークの付いた[TEST]テーブルがテーブル内に出来上がります。 もしMAIN.MDB内に同じ名前のテーブルがあると後に1が付きます。 リンクを外す場合は、単純にMAIN.MDBのテーブルにある[TEST]テーブルを削除する だけでOKです。MAIN.MDBのテーブルのリンクテーブル[TEST]を削除してもSUB.MDB にある元テーブルは削除はされません。 質問を良く理解していませんでした。VBでリンクさせようとしているのかと思っ たので。

m-toshi
質問者

補足

ご回答ありがとうこざいます。が・・・ >質問を良く理解していませんでした。VBでリンクさせようとしているのかと >思ったので。 そうなんです。VBで、これをしたいのです。 宜しくお願い致します。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

AccessのMAIN.mdb自体にSUB.mdbの[TEST]テーブルを直にリンクさせてMAIN.mdb だけ開いてSUB.mdbの[TEST]テーブルはMAIN.mdbにリンクされたSUB.mdbの[TEST] を使用するのはダメなのでしょうか。

m-toshi
質問者

補足

もちろん、それでOKです。その方法が解からないのです。(^^; ちなみに、リンクを外す方法も出来ればお願い致します。

関連するQ&A

  • 他のPWがかかっているファイルからのリンクテーブル

    アクセス2003です。 test1.mdb test2.mdb があります。 そして test1.mdb→PWなし test2.mdb→ツール→セキュリティからパスワードをかけました。 test1.mdbを起動して一部のテーブルをtest2.mdbからリンクテーブルとして繋いでいます。 (test2.mdbのファイルは開いていない) test2.mdbからリンクテーブルしているテーブル1を開こうとすると 「パスワードが正しくありません」(3031)となり開くことが出来ません。 作業をする上で test2.mdbのファイルは開きたくないのです。 回避方法、もしくは VBAなどで他のファイルのパスワードを開く方法があれば教えてください。 よろしくお願い致します。

  • VB6(SP5)とAccessについて

    VB6(SP5)でプログラミングをしております。 Jetを使用して、Access97のデータベースを 使用しております。 データ(mdb)が入っているPCにoffice2003を インストールしたとします。(つまり、Access2003が入ります) この場合、データ(Access97)をアップグレードすれば プログラミングの変更が必要になると考えております。 が、データ(Access97)をアップグレードしなければ プログラミングの変更は不要と考えてかります。 つまり、元のデータのアップグレードをしなければ Access2003は、使用してもかまわないと考えております。 この3つの考えは合っているのでしょうか ? 宜しくお願い致します。

  • Accessのテーブルへのリンク

    いま、ASPのDBとして使っているAccessのファイル A.mdbがあります その中の一つのテーブルを別のAccessファイル B.mdbにリンクして、参照したいと思っています。 しかし、B.mdbからリンクするときに インポートすると、A.mdbの変更が反映されず、 リンクすると、B.mdbで変更したものがA.mdbにも反映されて困っています. やりたいことはB.mdbから安全に(変更なしで)A.mdbのテーブルを 閲覧したいのです. ・A.mdbの変更をB.mdbに反映したい ・B.mdbのテーブルの変更はA.mdbに影響がない と言うことです. どうかお力添えを よろしくお願いします.

  • リンクテーブルについて

    ACCESS2003を使用しています。 test.mdbに保存されていたテーブル1、テーブル2を データーベース分割ツールでtest_be.ldbにリンクテーブルしました。 その後にテーブル3を作成したのですがこれもtest_be.ldbに追加で移動しリンクテーブルにしたいのですがどうすればいいのかわかりません。 「データーベース分割ツール」→「バックエンドデータベースの作成」となるのですがこれに上書きしてもいいのでしょうか? またリンクテーブルマネージャーを見ても新しいテーブル3は表示されません。 よろしくお願いします。

  • リンクテーブルで繋げているテーブルがいきなり入力・変更ができなくなった!

    ○○.mdbと○○_be.mdbのファイルがあり、○○_be.mdbはテーブルのみで、 ○○.mdbには○○_be.mdbのテーブルのコピー(リンクテーブル)があります。 なぜか今リンクテーブルで繋げている○○.mdbファイルのテーブルが 入力できなってしまいました。 このAccessファイル(○○.mdb)で作成したテーブルは変更可能です。 リンクテーブルのみ、 値の変更も新規レコードの追加もできなくなったのですが なぜでしょうか!!?? Accessを一度落として、 ファイルを開く→「開く」で再起動しても変わりません。 リンクテーブルのもとは(○○_be.mdb)変更可能です。 しかしフォームなどは○○.mdbファイルにある為、 ○○.mdbのリンクテーブルでのデータを変更したいのですができません! 何かわかる方よろしくお願い致します!!!!! (オフィス2003です)

  • VB2005を使ってACCESSのテーブルを別のデータベースにエクスポートさせるには?

    例えば、VB2005を使ってACCESSのA.mdbにあるテーブルをB.mdbにエクスポートさせるには、どのようなプログラムを書けば良いのでしょうか? ちなみに、ACCESSのテーブルをデータセットに取得して、別のテーブルに書き込むと言うようなものを書いて見ましたが、処理が非常に遅いので使えませんでした。

  • VB6.0からAccess2007のマクロを呼び出す方法について

    VB6.0からAccess2007のマクロを呼び出す方法について教えてください。 [vb6.0のソース] Private Sub ImportFile() Dim AccessMacro As Access.Application Set AccessMacro = GetObject("C:\test.mdb") AccessMacro.Run "Import" end Sub [test.mdbのマクロ] Public Sub Import() DoCmd.TransferText acImportDelim, "test インポート定義", "test", "C:\test.csv", False end Sub 上記の物を、XP+Access2003+VB6.0の環境でコンパイルし、Access2000が入っている環境で実行したところ、問題なくtest.mdbのマクロが実行できました。 (コンパイルした環境でも問題なく動作しました。) ところがこれをWin2003 + Access2007環境で実行したところ、 『実行時エラー 432 オートメーションの操作中にファイル名またはクラス名をみつけられませんでした。』 と表示されます。 おそらく、GetObject("C:\test.mdb")のところでエラーになっているものと思われるのですが、どのようにすれば原因が解消できるかが全くわかりません。 どなたがご教示ください。 よろしくお願いいたします。

  • VB.NETでのAccessテーブルリンク

    現在、VB.NET上で操作し、Accessのテーブルのリンクをしているのですが、 リンク処理の直後に、最後にテーブルのリンク処理をしたテーブルを 開こうとすると、 「要求された名前、または序数に対応する項目がコレクションで見つかりません。」という エラーが出ます。 なお、リンクしたテーブルには、きちんと正しいリンクで開こうとしたテーブルが登録されています。 それで、最後にリンクしたのが悪いのかと思い、順番を変えると、 そのエラーは起こらずに通常に起動しました。 ですが、順番を変えただけで普通に動く、というのが なんだか腑に落ちません。(まあ、無事に動いているのでいいのですが(汗 ) 以下にリンク処理を記載します。 何故、このようなことが起こるのかわかる方いらっしゃいましたら、ご教授お願い致します。 予想でもかまいません。 Public Sub DBLink() LFlag = False Dim rs As ADODB.Recordset = New ADODB.Recordset Dim Sql As String = String.Empty Dim dbPName As String = String.Empty Dim tName() As String 'リンク先のパスを指定 Dim f As New frmLinkPath f.ShowDialog() f.Close() f = Nothing 'パスを指定したか否か If LFlag Then 'TMPのパスは固定 dbPName = PathLast(Application.StartupPath) & "TMP.mdb" 'リンクするテーブル名を取得 'mdbLには、テーブル名がカンマ区切りで入っています tName = mdbL.Split(",") 'リンク先のテーブルを削除 For i = 0 To tName.Length - 1 Sql = "DROP TABLE " & tName(i) rs.Open(Sql, cn) Call SLink(tName(i), dbPName) Next dbPName = PathLast(DBPath) & "MST.mdb" 'リンクするテーブル名を取得 tName = mdbS.Split(",") 'リンク先のテーブルを削除 For i = 0 To tName.Length - 1 Sql = "DROP TABLE " & tName(i) rs.Open(Sql, cn) Call SLink(tName(i), dbPName) Next Else MsgBox("リンク先が指定されなかったので、" & vbCrLf & "テーブルの再リンクをキャンセルします", MsgBoxStyle.OkOnly + MsgBoxStyle.Information, "") End If End Sub ''' <summary> ''' データベース再リンク ''' </summary> ''' <param name="psNm">リンクするテーブル名</param> ''' <param name="psMdb">リンク元データベース名</param> ''' <remarks></remarks> Public Sub SLink(ByVal psNm As String, ByVal psMdb As String) Try Dim lodDb As dao.Database Dim ltDef As dao.TableDef Dim lsSource As String Dim lsTarget As String Dim daoE As New dao.DBEngine 'リンク先データベースとリンクデータベース名を指定 lsSource = psMdb lsTarget = PathLast(Application.StartupPath) & "DATA.mdb" '既存のデータベースの場合は OpenDatabase を使用する) lodDb = daoE.OpenDatabase(lsTarget) '任意の名前でテーブル定義を作成する ltDef = lodDb.CreateTableDef(psNm) 'リンク先のテーブル名を指定する ltDef.SourceTableName = psNm 'リンク先のデータベースを指定する(対象がMDBの場合セミコロンの前は省略) ltDef.Connect = ";Database=" & lsSource '定義したテーブルをアペンド(追加)する lodDb.TableDefs.Append(ltDef) lodDb.Close() lodDb = Nothing Catch ex As Exception Debug.Print(ex.Message) 'Throw End Try End Sub

  • Accessのリンクテーブル

    すみません、教えてください。 Accessで複数端末から一つのMDBにデータ登録をさせる為に、VBAでツールを作っています。以下のように記述をして いるのですが、MDBを閉じるたびに、リンク先のDBを認識しなくなってしまいます。テーブルでリンクを貼りなおすとまた動くようになるのですが、どうしたらリンクを貼りなおせずにできるようになるのか、どなたか教えてください。どうかお願いいたします。 Dim LinkDB as Database Dim RST AS Recordset Set LinkDB = WorkSpaces(0).OpenDatabase("リンク先のDBの名前") Set RST = LinkDB.OpenRecordset("テーブル名",DbOpenTable)

  • リンクテーブルについて・・・

    Access97で仕事関連のシステムを開発しています。 実データはテーブルだけのMDBファイルに格納して、 リンクテーブルとしています。 自宅ではアプリケーションMDBファイル、実データMDB ファイル共、ローカルディスクに入れていますが、 仕事場では実データMDBファイルはネットワーク上の サーバに有ります。 その為、アプリ変更の都度「リンクテーブルマネー ジャー」を行わないといけないのですが、これが結構 やっかいです。 自宅の環境では、数十テーブルのリンクに関して、 1回だけリンク先のMDBファイルを指定してやれば、 全てのテーブルリンクが完了しますが、仕事場では 各テーブル毎に1件づつリンク先を指定しないと いけません・・・なんで? あと、2つのリンク環境を一発で更新するとか、 出来ませんかネェ?

専門家に質問してみよう