向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"关键字。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)