1

Excel ファイルから Access DB に特定の情報をインポートする必要があります。これを行うために、DAO を使用しています。

ユーザーは、システムから Excel ソース ファイルを取得します。直接操作する必要はありません。このソース ファイルには 10 列あり、そこから特定のレコードのみを取得する必要があります。

これを使用してすべてのレコードを取得しています。

Set destinationFile = CurrentDb
Set dbtmp = OpenDatabase(sourceFile, False, True, "Excel 8.0;")
DoEvents
Set rs = dbtmp.OpenRecordset("SELECT * FROM [EEX_Avail_Cap_ALL_DEU_D1_S_Y1$A1:J65536]")

私の問題は、WHERE 句を使用して特定のレコードのみを取得したい場合に発生します。句を適用するフィールドの名前は「日付 (UCT)」であり (ユーザーはこのソース ファイルを別のシステムから取得することに注意してください)、WHERE 句を使用できません。名前に ( ) またはスペースが含まれていない別のフィールドに WHERE 句を適用すると、機能します。例:

Set rs = dbtmp.OpenRecordset("SELECT * FROM [EEX_Avail_Cap_ALL_DEU_D1_S_Y1$A1:J65536] WHERE Other = 12925")

前の命令は、フィールド Other の値が 12925 であるレコードの数のみを取得します。

同じ結果を達成する方法を教えてください。ただし、スペースと括弧を含むフィールド名、つまり 'Date (UCT)' を使用しますか?

どうもありがとうございました。

オクタビオ

4

1 に答える 1

0

フィールド名を角かっこで囲んでみてください。

SELECT * FROM [EEX_Avail_Cap_ALL_DEU_D1_S_Y1$A1:J65536] WHERE [Date (UCT)] = 12925

または、探している日付の場合:

SELECT * FROM [EEX_Avail_Cap_ALL_DEU_D1_S_Y1$A1:J65536] WHERE [Date (UCT)] = #02/14/13#;

日付リテラルを使用するには、マシンの地域設定に関係なく、 # 文字で囲み、日付を MM/DD/YY 形式で記述する必要があります

于 2013-02-11T14:48:44.023 に答える