2011-03-13 3 views
1

VBA 코드를 통해 SQL 쿼리를 "물리적으로"작성해야합니다. VBA에서 쿼리를 실행하는 방법을 알고 있지만 메뉴에 저장해야합니다. 만약 내가 할 수 있으면 나는 그림을 게시 할 것이다. 나는 너를 상상할 수있게하려고 노력할 것이다.Access VBA 코드를 통한 쿼리 저장

MS Access의 메인 화면에는 왼쪽에 막대가 있습니다.

"Consulta"는 쿼리가 포르투갈어로되어 있습니다.

나를 이해하지 못했다면 제 설명이 부족합니다. 다시 설명하게되어 기쁩니다.

답변

7

난 당신이 원하는 생각 :

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 다시는 존재하지 않는 쿼리를 삭제하면 오류가 발생합니다 것을

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 

참고 코멘트.

DoCmd.DeleteObject acQuery, "NewQuery" 
+0

다소 효과가 있습니다. 개체의 exintance를 확인하는 문이 실행되고 있지 않습니다. 그것은 바로 그것을 통과하고 개체가 이미 존재한다는 오류를 제공합니다. 문제는이 오류가 생성하는 크래시입니다. 가능하다면 또 다른 단서를주세요. –

+0

충돌로 인해 데이터베이스가 손상되었다고 생각합니다. 이것이 문제가되는지 확인하기 위해 새 데이터베이스로 확인할 수 있습니다. 그 후, http://www.granite.ab.ca/access/corruptmdbs.htm을 보면서 가치가있을 것입니다. – Fionnuala

+0

아니요, 그것이 제가 의미하는 바가 아닙니다. "Query already exists"오류를 처리 할 수 ​​없다는 코드의 오류입니다. If Not IsNull 행이 작동하지 않습니다. 하지만 어쨌든 고마워요 ... 제 코드에 정말 도움이되었습니다. –

관련 문제