如何向access的“查询”传递参数

如何向access的“查询”传递参数,第1张

向access的“查询”传递参数,可以使用ADO数据访问对象。

下面利用ACCESS VBA举一个示例:

students表

ID  Name

1    张三

2    李四

创建一个名为“ paramTest”参数查询,SQL代码如下

PARAMETERS SName Text ( 50 )

SELECT *

FROM students

WHERE name=SName

现在示范通过参数SName,查找李四同学的资料

新建一个ACCESS窗体,添加一个命令按钮

Private Sub Command1_Click()  

Dim rs As New ADODB.Recordset

rs.CursorLocation = adUseClient

rs.Open "paramTest '李四'", CurrentProject.Connection

MsgBox rs!Name

End Sub

点击命令按钮就会在d出的消息框看到“ 李四”

说明:

传递参数的方法是在查询名空格后填写参数值

格式>>> 查询名 参数1, 参数2, ...参数n     注意,参数顺序不要搞错。

其它编程工具其原理是一样的。

先给你一个方法,你可以让到相应的地方

public bool ExecuteSql(string SqlString,params OleDbParameter[] parameters)

{

bool result = false

OleConnection conn = new OleConnection("连接字符串")

OleDbCommand cmd = new OleDbCommand(SqlString, conn)

cmd.CommandType = CommandType.Text

if(parameters!=null)

{

foreach(OleDbParameter p in parameters)

{

if((p.Direction== ParameterDirection.Output)&&p.Value==null) p.Value = DBNull.Value

cmd.Parameters.Add(p)

}

}

try

{

conn.Open()

cmd.ExecuteNonQuery()

result = true

}

catch

{

}

finally

{

conn.Close()

}

return result

}

调用时:

string sql = "insert into tablename(name,sex,brithday,address,zip) values(@name,@sex,@brithday,@address,@zip)"

OleDbParameter[] parameters = new OleDbParameter[]{

new OleDbParameter("@name",namevalue),

new OleDbParameter("@sex",sexvalue),

new OleDbParameter("@brithday",brithdayvalue),

new OleDbParameter("@address",addressvalue),

new OleDbParameter("@zip",zipvalue)

}

bool flag = ExecuteSql(sql,parameters)

运行成功会返回真,否则为假,上面的值我没有写具体的,你自己写就行了

两个access 参数传递可以使用tag标记。

参数传递,是在程序运行过程中,实际参数就会将参数值传递给相应的形式参数,然后在函数中实现对数据处理和返回的过程,方法有按值传递参数,按地址传递参数和按数组传递参数。

如果是按值传递参数时,是将实参变量的值复制一个到临时存储单元中,如果在调用过程中改变了形参的值,不会影响实参变量本身,即实参变量保持调用前的值不变,按值传递参数时,需要在参数名前加"ByVal"关键字。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9959267.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存