2016-07-13 7 views
-1

マクロを使用してインポートしたテーブルをいくつか持っていて、いくつかのSQLクエリを実行します。現在、インポートする前にファイルの名前を変更する必要があります。VBAでアクセステーブル名を変更する

たとえば、SSIReport()というファイルがあり、この表をSSI_Dataに変更したいとします。 1つの問題は、SSIReportの角括弧内にファイルが生成された日付があるために変更されることです。 ここでは、インポートエラーテーブルを削除するために現在使用しているコードを少し見ていますが、これをリネームテーブルに変換する方法があるかどうかはわかりません。

For Each otable In CurrentDb.TableDefs 
If otable.Name Like "*ImportErrors*" Then 
CurrentDb.TableDefs.Delete otable.Name 
End If 
Next otable 
+0

私はDoCmd.Renameを試しましたが、ファイル名を変更すると、その中にLIKEを含める方法がわかりませんでした。また、インポートエラーテーブルを削除するループがあります。 – Rukgo

+0

テーブルを持っていると言うと、tblMatrixと言います。その場合はSSIとSSI_DataのようにSSI_Dataと書かれているので、このテーブルのファイル名を確認してdocmd.transferspreadsheetを使って戻ります。 moでアクセスできないので、100%は確かではありません。これはおそらく私が始めようとしている場所ですhttps://msdn.microsoft.com/en-us/library/office/ff844793.aspx –

+1

'DoCmd.Rename strNewName、acTable、 strOldName'が動作します。実際の問題が何であるか分かりません。 – Andre

答えて

0

ファイルをインポートする前に名前を変更する方がはるかに簡単です。

+0

の日付を持つファイルをインポートしたときに変更する場合、これについてはかなり単純な方法はありませんか? – Rukgo

+0

マクロではないと思いますが、マクロはしません。 – Gustav

+0

VBAコーディングアスペクトを含むマクロが正しいとお考えですか? – Rukgo

0

このようなことは、仕事をする必要があります。

Dim dbCurr As DAO.Database 
Dim tdfCurr As DAO.TableDef 

Set dbCurr = CurrentDb() 
For Each tdfCurr In dbCurr.TableDefs 
If Left$(tdfCurr.Name, 4) = "dbo_" Then 
tdfCurr.Name = Mid$(tdfCurr.Name, 5) 
End If 
Next tdfCurr 
関連する問題