我们可以在 ms access 2007 中创建存储过程吗

Can we create stored procedure in ms access 2007

如何在MS Access 2007中创建存储过程。如果可以,那么应该如何编写插入语句的过程。

无法在 MS Access 2007 中创建存储过程。您需要 Access 2013 - https://msdn.microsoft.com/en-us/library/office/ff845861(v=office.15).aspx

这个语句可以作为例子

string queryText = @"
CREATE PROCEDURE Customer_Insert (pName  text(255), pAddress Text(255)) AS
    INSERT INTO Customers ( Name, Address )
    VALUES ([pName], [pAddress]);";

现在使用 OleDb 执行非返回行命令的常用方法

using(OleDbConnection cn = new OleDbConnection(......))
using(OleDbCommand cmd = new OleDbCommand(queryText, cn))
{
    cn.Open();
    cmd.ExecuteNonQuery();
}

终于可以正常调用了

using(OleDbConnection cn = new OleDbConnection(......))
using(OleDbCommand cmd = new OleDbCommand("Customer_Insert", cn))
{
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.Add("pName", OleDbType.VarWChar).Value = "yourCustomerName";
    cmd.Parameters.Add("pAddress", OleDbType.VarWChar).Value = "yourCustomerAddress";
    cn.Open();
    cmd.ExecuteNonQuery();
}

编辑
只有当 StoredProcedure 不存在时,才应创建存储过程(A.K.A。Access 界面中的查询)。要发现该过程是否已存在于您的数据库中,最简单的方法如下

 using(OleDbConnection cn = new OleDbConnection(....));    
 { 
     con.Open();
     var schema = con.GetSchema("Procedures");
     DataRow[] r = schema.Select("PROCEDURE_NAME = 'Customer_Insert'");
     if(r.Length > 0)
         MessageBox.Show("Procedure 'Customer_Insert' already exists");
 }