2009-03-26 6 views
0

私はそれをクリックすると非常に迅速に開くAccessでODBCによって既に接続されているテーブル(読み取り値)を持っています。ODBC接続テーブルVBAに対してクエリを実行します

私はVBA Iでこれを実行しようとするとしかし、それはロックアップ、決して何も表示されます。これは、システム全体がクラッシュいくつかの理由

Dim strSql As String 
strSql = "SELECT readings.ids " & _ 
     "INTO ids_temp " & _ 
     "FROM readings " & _ 
     "WHERE readings.ids > 1234;" //This is id in middle of list 
DoCmd.SetWarnings False 
DoCmd.RunSQL strSql 
DoCmd.SetWarnings True 

を。何か案は?

+0

クエリはクエリウィンドウから正常に実行されますか? – Fionnuala

+0

okそれは私のところでは誤りでした。私が思ったようにデータベースはソートされていなかったので、私は実際に約600万レコードを引っ張っていました。 Remouありがとう –

答えて

0

のでエラーは、私が使っていたIDはクエリが600万の結果を返すことが原因となった実際に私のせいでした。しかし、このメソッドは実際に素晴らしい作品、私はちょうどテーブルを作成し、テーブルに別のフォーム上のリストボックスをリンクし、私はちょうどフォームを表示します。私は間にいくつかの閉鎖と更新を行いますが、全体的にはうまくいくようです。ヘルプありがとう

-1

DoCmd.RunSQLは、結果が期待どおりかどうかわからないので、特にSetWarningsをオフにすると、決してお勧めできません。 VBAにエラーを報告しないように指示したので、すべてのレコードが挿入されたかどうかはわかりません。

それは私のSQLRUN()関数でDoCmd.RunSQLを交換するのは非常に簡単です、ここに掲載:のDoCmdを使用して

How can I get a value from the update query prompt in Access VBA?

0

よりもむしろを、tは通常、作成するために、既存の接続によって処理されますCommandオブジェクトは、Command.Executeメソッドで使用するSQL文を受け入れます。

DoCmdのドキュメントを読むと、主にAccess UIのメニューからマクロを実行するように思われます。

0

データベースにids_tempテーブルがローカルにありますか? ids_tempテーブルがLinkedテーブルの場合、CREATES NEW TABLEにselectがあるので、テーブルを削除します。テーブルに追加する場合は、INSERT INTOコマンドを試してください。データを挿入する前にテーブルをクリーンにすることができます。

関連する問題