ACCESS 用代码创建查询

个人日记

此文章发表日期在03年左右,现在应该都可以直接用最后的方法 


方法一:


ado代码如下:

On Error Resume Next             '----- 用来预防删除指令出错 
Dim DB As New ADOX.Catalog 
Dim Qdf As New ADODB.Command 
Dim strSQL,strQueryNm As String 

strQueryNm = "查询1" 

DB.ActiveConnection = CurrentProject.Connection 
strSQL = "Select .... Where...From...;"  '--- 选择查询的 SQL 代码 
DoCmd.DeleteObject,acQuery,strQueryNm   '--- 产生新查询前先删除旧查询 
Qdf.CommadnText = strSQL 
DB.Procedures.Append strQueryNm,Qdf 

Set DB = Nothing 


 


方法二:


用VBA灵活生成查询,动态生成查询《VBA》
DAO动态生成查询:

        Dim dbs As Database, strSQL1 As String, strSQL2 As String
        Dim qdf1 As QueryDef
    
        Set dbs = CurrentDb
        
        strSQL1 = "SELECT 职工表.* " & _
        "FROM 职工表 " & _
        "WHERE (((职工表.性别)" & GenderNo & ") " & _
        "AND ((职工表.是否已婚)" & Married & ") " & _
        "AND ((职工表.编制)" & PList & ")"
        
        strSQL2 = ");"

        Set qdf1 = dbs.CreateQueryDef("~人员查询", strSQL1 + strSQL2)
        DoCmd.OpenQuery qdf1.Name


 

 

方法三:

dao代码如下:
    Dim QDF As DAO.QueryDef, strQueryName As String
    
    strQueryName = "查询" & Format(Date, "mmdd")
    
    DoCmd.deleteobject acQuery, strQueryName
    
    DoCmd.CopyObject , strQueryName, acQuery, "空查询"
    '新建一个查询对象忘了怎么做,不过可以用一个查询来复制出来另一个查询,
    '原来"空查询"里的内容无所谓
    
    Set QDF = CurrentDb.QueryDefs(strQueryName)
    QDF.SQL = "SELECT HelpDoc.* FROM HelpDoc WHERE ([LOCNAME] LIKE '*" & Me.txt包含文字 & "*')"
    QDF.Close
    
    DoCmd.OpenQuery strQueryName

 


方法四:


其实现在根本不需要这么复杂了。只要执行以下这句就可以了。

currentproject.connection.execute "create view name1 as select * from table"


用ddl,一句就搞定了。

注意条件: jet db 4.0 才行

文章评论

Aries

尼玛,太有文化了,净整些看不懂的

兰姐

你妹!玩这么高端干啥~

Sue

vba创建SQL查询吗?