2017-04-21 33 views
1
Set objAccess = CreateObject("Access.Application") 
objAccess.DoCmd.rename "new_", 0, "new" 

ここでは、正常に動作し、このクエリは時々正常に動作し、時にはエラーの下 ランタイムを投げて成功し(構造のみ)既存のテーブルからテーブルを作成しようと

Curmonth1 = [new] 
Curmonth2 = [new_] 

objAccess.DoCmd.RunSQL "SELECT * INTO" & Curmonth1 & "FROM" & Curmonth2 & "WHERE 1 = 2" 

リネームしnew_からnewの名前を変更エラー2501は、実行コマンドアクションが取り消されました。
このクエリを使用してみましたアクセスDB

で作業するとき、私はVBAでクエリーに2つの変数を渡しているように、あまりにも

objAccess.DoCmd.RunSQL "CREATE TABLE" & Curmonth1 & "AS SELECT * FROM" & Curmonth2 & "WHERE 1 = 2" 

これはまったく機能していません。

私を助けてください。動作することができる他のクエリ。
私は、これらの2つの質問の間でデータベースのリフレッシュを行うべきだと感じています。

'copy table without data with new name 
    strPath = CurrentProject.FullName 
    DoCmd.TransferDatabase acImport, "Microsoft Access", strPath, acTable, "SourceTableName", "NewTableName", True 

編集を:あなたは、その内容ずにテーブル構造をコピーしたい場合は

答えて

1

、これを試してみてください(混乱)ワンライナーとして:

DoCmd.TransferDatabase acImport, "Microsoft Access", CurrentProject.FullName, acTable, "SourceTableName", "NewTableName", True 

は編集:このコードを試してみてください(SourceTableNameを置き換えて):

Sub testSub() 

    DoCmd.TransferDatabase acImport, "Microsoft Access", CurrentProject.FullName, acTable, "SourceTableName", "NewTableName", True 

End Sub 
+0

こんにちはデビッド、素早く対応してくれてありがとうここにstrpathは何ですか、それはAccess DBのパスですか?この変数に渡す必要があるもの –

+0

はい、 'CurrentProject.FullName'は現在のデータベースのフルネームの文字列を返します。最初のバージョンでは、宣言で「Dim strPath As String」が追加されている必要があります –

+0

objAccess.DoCmd.TransferDatabase acImport、 "Microsoft Access"、objAccess.CurrentProject.FullName、acTable、[new_]、[new] .expression u enteredは間違ったデータ型です –

関連する問題