Microsoft Access2002を使用しています。【test1.mdb】【test2.mdb】があるとします。、【test1.mdb】から【test2.mdb】の中に「sample」というテーブルが存在するか調べる方法を教えてください。※VBAを使用して調べたいと思っています。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:Snufkin No.1

回答回数13ベストアンサー獲得回数0

http://www.hatena.ne.jp/1075519325

Microsoft Access2002を使用しています。【test1.mdb】【test2.mdb】があるとします。、【test1.mdb】から【test2.mdb】の中に「sample」というテーブルが存在するか調べる.. - 人力検索はてな

URLはダミー。

DAO3.5を使った例です。

Public Sub SearchSample()

Dim MyDB As Database

Dim MyTB As TableDef

Set MyDB = OpenDatabase(”FullPath”)

For Each MyTB In MyDB.TableDefs

If LCase(MyTB.Name) = ”sample” Then

MsgBox ”sampleが存在します”

Exit Sub

End If

Next MyTB

MsgBox ”sampleは存在しません”

End Sub

id:pahoo No.2

回答回数5960ベストアンサー獲得回数633

http://www.accessclub.jp/bbs2/0031/beginter10269.html

複数のテーブルを削除する方法 --Access Club Access 初・中級者 FORUM--

このクエリを使ってテーブル一覧を取得する方法は銅でしょうか?

id:Ktwo No.3

回答回数22ベストアンサー獲得回数5

Access2000で確認しました。(2002持ってませんので・・・)

Option Compare Text

Public Sub TblDel(Pin As String)

On Error GoTo TblDel_Err

DoCmd.DeleteObject acTable, Pin

Exit Sub

TblDel_Err:

End Sub

Public Function ChkTbl(Pin As String) As Boolean

On Error GoTo ChkTbl_Err

Dim wId As Variant

Call TblDel(”test2_MSysObjects”)

DoCmd.TransferDatabase acLink, ”Microsoft Access”, _

”test2.mdb”, _

acTable, ”MSysObjects”, ”test2_MSysObjects”, False

wId = DLookup(”Id”, ”test2_MSysObjects”, ”Name = ””” & Pin & ””” and Type = 1”)

If IsNull(wId) Then

ChkTbl = False

Else

ChkTbl = True

End If

Exit Function

ChkTbl_Err:

ChkTbl = False

End Function

Public Sub test()

MsgBox (ChkTbl(”sampleA”))

MsgBox (ChkTbl(”sample”))

MsgBox (ChkTbl(”sampleB”))

End Sub

test2.mdbのMSysObjectsをリンクし、

テーブル名を検索します。

id:topo

はてなのシステム障害により、一度終了した質問が復活しておりました。今回ご回答いただいた方申し訳ありません。

前回ご回答いただきました、Snufkinさんとあともう一方名前を忘れてしまったのですが、ポイントが振り分けられているか不安です。

もし振り分けられていなければ、お知らせ下さい。

2004/02/02 01:19:53
  • id:topo
    ご連絡

    前回ご回答頂いた方、メールを調べたら名前がありました。Snufkinさん、kamicha1さんでした。
    もし、ポイントが振り分けられておりませんでしたら、御連絡下さい。

    ※ここからははてなへ
    このままだと回答が増えそうなのでやむを得ずキャンセルにしましたが、既に一度終了された質問なので、キャンセル扱いをキャンセルしてください。といってもせっかく前回頂いた回答が消えているのが凄い残念ですが。今回頂いた回答も消えちゃうのかな?
  • id:Snufkin
    Re:ご連絡

    ポイント大丈夫ですよ!

    サンプルコード書いときます。
    リンクはDAOをADOに移植する為のものですが、ADOの例としても使えそうです。

    Public Sub SearchSample()
      Dim cnn As New ADODB.Connection
      Dim cat As New ADOX.Catalog
      Dim tbl As ADOX.Table

      cnn.Provider = ”Microsoft.Jet.OLEDB.4.0”
      cnn.Open ”C:¥Documents and Settings¥jse-nakajima¥デスクトップ¥TEMPORARY¥test2.mdb” ’フルパスで記入
      cat.ActiveConnection = cnn

      For Each tbl In cat.Tables
        If tbl.Name = ”sample” Then
          MsgBox ”sample 有り”
          Exit Sub
        End If
      Next tbl

      cnn.Close
      MsgBox ”sample 無し”
    End Sub

    http://www.microsoft.com/japan/msdn/data/techmat/ado/dao2ado.asp
  • id:topo
    Re(2):ご連絡

    ポイント振り分けられているようで安心しました。
    前回ご回答頂いた内容も消えていたので、再度書いていただいて助かりました。
    ありがとうございます。
  • id:reikon
    Re:ご連絡

    はてなスタッフの近藤(れ)です。
    この度は、弊社データベーストラブルにより、御迷惑をおかけし本当に申し訳ございませんでした。
    貴重なお時間をはてなのご質問、ご回答にお使いいただいたにも関わらず、こうした形になり心よりお詫び申し上げます。
    なお、topo様にて今回、キャンセルいただいた操作につきましては、はてなにて正常終了した形に処理変更させていただきました。以前にご回答いただきました情報については復旧がおこなえないままでございますが、回答者様みずから掲示板にお書き込みいただきありがとうございました。
    不十分な形での掲載となっており、誠に申し訳ございませんでした。
    どうぞよろしくお願いいたします。
  • id:topo
    Re(2):ご連絡

    迅速な対応ありがとうございます。
    回答が消えてしまったのは残念ですが、はてな自体は大変便利に利用させていただいております。
    これからも利用していきますので、宜しくお願いいたします。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません