Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


501 / 2272 ツリー ←次へ | 前へ→

【11409】ADPのテーブルをMDBにインポートしたい pon 10/1/21(木) 17:54 質問[未読]
【11418】Re:ADPのテーブルをMDBにインポートしたい pon 10/1/22(金) 13:26 発言[未読]
【11420】Re:ADPのテーブルをMDBにインポートしたい pon 10/1/22(金) 14:46 質問[未読]
【11421】Re:ADPのテーブルをMDBにインポートしたい pon 10/1/22(金) 15:14 発言[未読]
【11424】Re:ADPのテーブルをMDBにインポートしたい pon 10/1/22(金) 19:43 お礼[未読]

【11409】ADPのテーブルをMDBにインポートしたい
質問  pon  - 10/1/21(木) 17:54 -

引用なし
パスワード
   こんにちはよろしくお願いいたします


ADPのDTを操作するのは怖いのでMDBで利用したいと思っています

Access のすべてのデータベース オブジェクトをインポートするサンプル コード
tp://support.microsoft.com/kb/298174/ja


  Set db = DBEngine.Workspaces(0).OpenDatabase(strPath, True) ←ココ

   'Import tables from specified Access database.
   For Each td In db.TableDefs
   strTDef = td.Name
   If Left(strTDef, 4) <> "Msys" Then
   DoCmd.TransferDatabase acImport, "Microsoft Access", strPath, acTable, _
   strTDef, strTDef, False
   End If
   Next
でMDBからMDBへのTBLのインポートは出来ました


ADPからMDBにインポートしようとすると

  Set db = DBEngine.Workspaces(0).OpenDatabase(strPath, True) ←ココ

実行時エラー '3343':
データベースの形式 'C:\hoge\fuga.adp' を認識できません。
となってしまいます

どうすればインポートできるでしょうか
アドバイスよろしくお願いいたします

【11418】Re:ADPのテーブルをMDBにインポートしたい
発言  pon  - 10/1/22(金) 13:26 -

引用なし
パスワード
   結果報告です
下記でインポートできました

Sub Import_TBL()

  Dim strConnect As String
  Dim strSQL As String
  Dim db As DAO.Database
  'Dim CurrentDb_Name As String
  Dim TG_JOB As String
  
  TG_JOB = "7777"
        
  strConnect = "ODBC;Driver={SQL Server};Server=(local);" & _
         "Database=DBNM;UID=HOGE;PWD=FUGA;"
        
  Set db = DBEngine.OpenDatabase("", False, False, strConnect)
  strSQL = "select * into d_Tbl_TG " & _
       "IN 'C:\FOO\BAR.mdb' from d_Tbl_TG WHERE d_Tbl_TG.FLD=""" & TG_JOB & """;"
  db.Execute strSQL
  
  Application.RefreshDatabaseWindow
  
End Sub

取りあえず希望の操作はかなっています


何かアドバイスありましたらよろしくお願いいたします

【11420】Re:ADPのテーブルをMDBにインポートしたい
質問  pon  - 10/1/22(金) 14:46 -

引用なし
パスワード
   追加の質問です


上記はローカルPCのMSDEのDBからはうまくインポートできましたが
SQLサーバーからのインポートが

  db.Execute strSQL

実行時エラー '3067':
クエリの入力には、1 つ以上のテーブルまたはクエリが必要です。
とエラーとなってしまいます
strConnect
は、サーバーにあわせて変更しているので問題はないと思います

気になる点は
SQLサーバー上のテーブル名が
hoge (dbo)
のようになっているのですが
これを、右クリックで名前の変更でコピーしようとすると
後ろの (dbo) が消えてしまいます

この辺に原因があるような気もするのですがよくよくわかりません

アドバイスよろしくお願いいたします

【11421】Re:ADPのテーブルをMDBにインポートしたい
発言  pon  - 10/1/22(金) 15:14 -

引用なし
パスワード
   結果報告です
下記でインポートすることが出来ました

'strSQL = "select * into FOO (dbo) IN 'C:\HOGE\FUGA.mdb' from FOO (dbo) ;"
実行時エラー '3067':
クエリの入力には、1 つ以上のテーブルまたはクエリが必要です。


'strSQL = "select * into FOO (dbo) IN 'C:\HOGE\FUGA.mdb' from FOO ;"
実行時エラー '3067':
クエリの入力には、1 つ以上のテーブルまたはクエリが必要です。

'strSQL = "select * into FOO IN 'C:\HOGE\FUGA.mdb' from FOO (dbo) ;"
実行時エラー '3131':
FROM 句の構文エラーです。

'strSQL = "select * into FOO IN 'C:\HOGE\FUGA.mdb' from FOO ;"
インポートが出来ました

手動でインポートすると
テーブル名が
FOO (dbo)
となってしまいます

この辺の動作の説明ページとご紹介頂けるとうれしいです
よろしくお願いいたします

【11424】Re:ADPのテーブルをMDBにインポートしたい
お礼  pon  - 10/1/22(金) 19:43 -

引用なし
パスワード
   お騒がせしました

解決です

ありがとうございました

501 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078193
(SS)C-BOARD v3.8 is Free