用access的查询,可以新建带参数的选择、插入、修改、删除

解决方案 »

  1.   

    access是桌面数据库没有存储过程
    那些在存储过程实现的业务只能放到前端了
      

  2.   

    access建存储过程
    新建一个查询 procdure1
    很简单的一个存储过程:
    Select * from 表 where 字段=@varok,现在这个procdure1就是一个存储过程
    但是access的功能必定有限,若你写的存储过程很复杂,别如说游标等一类似循环的语句
    就很可能执行结果不对
      

  3.   

    在access2000及以上版本中,Access已经具备了存储过程的功能,而且是Jet 4 Database Engine自带的。当一个存储过程被添加到Access数据库时,JET Engine会把存储过程转换到一个查询对象。示例:1、"CREATE PROC procProductsList AS SELECT * FROM Products;"      2、"CREATE PROC procProductsDeleteItem(inProductsID LONG)" & _
    " AS DELETE FROM Products WHERE ProductsID = inProductsID;"      3、"CREATE PROC procProductsAddItem(inProductName VARCHAR(40), " & _
    " inSupplierID LONG, inCategoryID LONG) " & _
    " AS INSERT INTO Products (ProductName, SupplierID, CategoryID) " & _
    " Values (inProductName, inSupplierID, inCategoryID);"      4、"CREATE PROC procProductsUpdateItem(inProductID LONG, " & _
    " inProductName VARCHAR(40)) " & _
    " AS UPDATE Products SET ProductName = inProductName " & _
    " WHERE ProductID = inProductID;限制:
         不能使用输出参数。
         不要使用@字符。 @字符通常用于Transaction SQL( SQL SERVER),代表一个本地变量 。 Access不总是会转换这个字符, 有时会将它省略。
         Access无法存取临时表。
      

  4.   

    谢谢上面各位
    照这样看好像ACESS无法声明局部变量
      

  5.   

    '部分存储过程可以考虑用VBA代码实现,我举个例子:在ACCESS中,新建一个表: 合并字符串
    内容如下:ID 货品编号 货品名称 季节 尺寸 颜色
    1 1004B 开裆裤 春秋 52 红色
    2 1004B 开裆裤 春秋 59 红色
    3 1004B 开裆裤 春秋 66 红色
    4 1004B 开裆裤 春秋 73 红色
    5 1007 素色双面 春(A) 52 红色
    6 1007 素色双面 春(A) 59 红色
    7 1007 素色双面 春(A) 52 兰色
    8 1007 素色双面 春(A) 59 兰色
    9 1009 素色双面2 春秋 59 红色
    10 1009 素色双面2 春秋 66 红色
    11 1009 素色双面2 春秋 59 兰色
      

  6.   

    再点模块--新建--新建一个模块,写上如下代码:Public Function f_getstr(bh$, fd$) As String 'bh为货品编号,fd为要组合的字段名
        Dim iRe As String, Re As DAO.Recordset
        
        Set Re = CurrentDb.OpenRecordset("select " & fd & " from 合并字符串 where 货品编号='" + bh + "'")
        While Re.EOF = False
            iRe = iRe & "," & Re(0)
            Re.MoveNext
        Wend
        Re.Close
        
        f_getstr = Mid(iRe, 2)
    End Function
      

  7.   

    然后新建一个查询,注意其中的f_getstr(...),就是调用了我上面写的模块
    SELECT 货品编号, 货品名称, 季节, f_getstr(货品编号,"尺寸") AS 尺寸, f_getstr(货品编号,"颜色") AS 颜色
    FROM 合并字符串
    GROUP BY 货品编号, 货品名称, 季节;