2011-03-13 15 views
1

VBAコードを使用してSQLクエリを「物理的に」作成する必要があります。 私はVBAでクエリを実行する方法を知っていますが、メニューに保存する必要があります。もし私ができるなら、私は写真を投稿するだろう。私はあなたに想像させようとします。Access VBAコードでクエリを保存する

MS Accessのメイン画面には、左側にバーがあります。

"Consulta"はクエリをポルトガル語で表しています。

あなたが私を理解していない場合は、私の説明が不足していると言い訳してください。私は再び説明することを嬉しく思うでしょう。

答えて

7

私は、あなたがしたいと思う:存在しないクエリを削除するとエラーになりますことをコメント

Sub UpdateQuery(QueryName, SQL) 
    ''Using a query name and sql string, if the query does not exist, ... 
    If IsNull(DLookup("Name", "MsysObjects", "Name='" & QueryName & "'")) Then 
     ''create it, ... 
     CurrentDb.CreateQueryDef QueryName, SQL 
    Else 
     ''Other wise, update the sql. 
     CurrentDb.QueryDefs(QueryName).SQL = SQL 
    End If 

End Sub 

注再

If Not IsNull(DLookup("Type", "MSYSObjects", "Name='MyNewQuery'")) Then 
    MsgBox "An object already exists with this name" 
Else 
    CurrentDb.CreateQueryDef "MyNewQuery", "SELECT * FROM Table1" 
End If 

はEDIT。

DoCmd.DeleteObject acQuery, "NewQuery" 
+0

ちょっとしたことです。オブジェクトのExintanceを検証するステートメントは実行されていません。それはそれを通り抜けて、オブジェクトがすでに存在するというエラーを私に与えます。問題は、このエラーが生成するクラッシュです。できるなら、別の手がかりをくれ。 –

+0

クラッシュがあなたのデータベースが壊れていることを示唆している、私は恐れている。これが問題であることを確認するには、新しいデータベースで確認することができます。その後、http://www.granite.ab.ca/access/corruptmdbs.htm – Fionnuala

+0

を調べる価値があります。いいえ、それは私が意味するものではありません。 「Query already exists」エラーを処理できないというコードのクラッシュです。 If Not IsNull行は機能しません。しかし、とにかく感謝します...それは本当に私のコードを助けました。 –

関連する問題