2

入力に外部テキストファイルを使用するMSAccessデータベースがあります。

このテキストファイルを信頼していないので、データベースの汚染を避けるために、データをインポートする前に内容を検証したいと思います。

データは、それ自体で完全に正常に機能しているマクロを介してテキストファイルからインポートされます。マクロの「If」プログラムフローブロック内に挿入を行うクエリをラップしようとしています。Ifステートメント の条件を機能させるのに問題があります。

外部テキストファイルのソースはテーブルと呼ばれますUserStatistics

UserStatistics-CheckTxtFileIsCorrect次のコードを含むクエリ()を作成しました。

SELECT *
FROM UserStatistics
WHERE (((UserStatistics.[Column1])="KNOWNGOODVALUE"));

マクロのIf条件は現在、次のように設定されています。

  • count (*) from [UserStatistics-CheckTxtFileIsCorrect] >1しかし、これはエラーになります。

私が試したものはすべて、「解析できません...」または「入力した名前が見つかりません...」というエラーで失敗します。

どんな助けでも大歓迎です!!

私が試したバリエーションのリストで更新:

Count([UserStatistics-CheckTxtFileIsCorrect])>1
-- "Access cannot find the name 'UserStatistics' 
-- you entered in the expression" 
Count[UserStatistics-CheckTxtFileIsCorrect] > 1 -- cannot parse
count (*) [UserStatistics] >1 -- "cannot parse..." 
Count * 
where [UserStatistics-CheckTxtFileIsCorrect]![User ID] = 'ABC' -- cannot parse
Count(select * from [UserStatistics] 
where [UserStatistics]![Column1] = 'ABC') > 1 -- cannot parse

メジャーアップデート2

HansUpが提案しDCountました。式の基準部分を省略すると、If条件が評価されます。しかし、私の目標を達成するには、基準の部分が絶対に必要です。

DCount("*","UserStatistics","[UserStatistics]![Column1] = 'ABC' ")>1
DCount("*","UserStatistics","Column1 = 'ABC' ")>1
DCount("*","UserStatistics",Column1 = 'ABC' )>1

上記のすべてでエラー2001が発生します

解決!

外部テキストファイルの列名にスペースが含まれていることがわかりました。したがって、DCountステートメントの基準の列は、次のように角かっこで囲む必要があります。

If DCount("*","UserStatistics","[User ID]='KNOWNGOODVALUE'")>1Then
Do my Actions here....
Else
MsgBox Error here...
End If

私をに向けてくれたHansUpに感謝しますDCount

4

1 に答える 1

0

条件で式を使用しDCount()ます。

DCount("*", "UserStatistics", "Column1='KNOWNGOODVALUE'")>1

WHEREこれはクエリと同じカウントを返すはずですが、ソーステーブル名と基準をDCountオプションとして含めることができるため、実際にはクエリは必要ありません。

DCountイミディエイトウィンドウでその式をテストして、3番目のオプションを実行できます。(Ctrl+gはイミディエイトウィンドウを開きます)そこで次の行を試してください:

? DCount("*", "UserStatistics", "Column1='KNOWNGOODVALUE'")

引用符に注意してください...二重引用符で囲まれた文字列には一組の引用符があります。

3番目のオプションであるWHERE基準が障害であるため、3番目のオプションを指定してクエリを使用しDCount、3番目のオプションを省略します。

DCount("*", "[UserStatistics-CheckTxtFileIsCorrect]")
于 2012-12-28T12:13:20.343 に答える