|
昨天Access交流群里有群友提问,如果不愿意拼接SQL,该如何使用ADO进行追加数据。
我记得之前猫神好像写过一个帖子,但时间久远,一时间我也找不到了。所以打算自己随意写一个帖子。
不拼接SQL,通常需要使用占位符来处理。在使用占位符的时候,自然需要设置好数据类型,那么传入的值就会按既定数据类型进行处理了。这有些像Access的参数查询一样:
- PARAMETERS userName Text ( 255 ), age Short, logDate DateTime;
- SELECT 表1.userName, 表1.age, 表1.logDate
- FROM 表1;
复制代码 如上代码,先创建3个参数,运行的时候,只要用户按指定的数据类型输入,那么就能查询出正确的数据了。
对于ADO,可以使用同样的思路来处理。先创建ADO数据连接(connection),再设置命令(command),通过command来创建参数,再执行带参数的SQL命令即可。代码如下:
- Private Sub cmdInsert_Click()
- Dim cmd As New ADODB.Command
- Dim cnn As ADODB.Connection
- Dim strSQL As String
-
- Set cnn = CurrentProject.Connection
- cmd.ActiveConnection = cnn
- cmd.CommandType = adCmdText
-
- strSQL = "INSERT INTO 表1 (userName, age, logDate, remark) VALUES (?, ?, ?, ?)"
-
- '。参数名不必和字段名一致,但参数必须与字段的数据类型一一对应。
- '也可以写成以下。不过一般情况下,建议还是像上面一样,加上字段名便于理解。
- 'strSQL = "INSERT INTO 表1 VALUES (?, ?, ?, ?)"
-
- cmd.Parameters.Append cmd.CreateParameter("myUser", adVarChar, adParamInput, 255, Me.userName)
- cmd.Parameters.Append cmd.CreateParameter("myAge", adInteger, adParamInput, , Me.age)
- cmd.Parameters.Append cmd.CreateParameter("myDate", adDate, adParamInput, , Me.logDate)
- cmd.Parameters.Append cmd.CreateParameter("myRemark", adVarChar, adParamInput, 255, Me.Remark)
-
- cmd.CommandText = strSQL
- cmd.Execute
-
- cnn.Close
-
- Set cmd = Nothing
- Set cnn = Nothing
- End Sub
复制代码 如上所示,占位符为问号(?),不需要区分数据类型。而是把这部分交给了创建参数部分。
其它关联链接如下,欢迎参阅:
【新手入门】之一:If分支语句
【新手入门】之二:分支语句总结
【新手入门】之三:循环语句For
【新手入门】之四:循环语句Do和死循环
【新手入门】之五:公共变量与传址过程、传值过程
【新手入门】之六:“悲欢离合总无情”——浅谈Split和Join
【新手入门】之七:嵌套与并列——再谈If流程问题
【新手入门】之八:“连就连”——浅谈“&”和“+”连接符的区别
【新手入门】之九:从百钱百鸡谈起——浅谈“规划求解”兼答lingjiang问
【新手入门】之十:书到用时方恨少——自定义菜单(Access 2003)的制作
【新手入门】之十一:浅谈ADO之序言
【新手入门】之十二:浅谈ADO之Connection
【新手入门】之十三:浅谈ADO之Conmmand(上)
【新手入门】之十四:浅谈ADO之Command(下)
【新手入门】之十五:浅谈ADO之Recordset(上)
【新手入门】之十六:浅谈ADO之Recordset(下)
【新手入门】之十七:浅谈列表框的使用
【新手入门】之十八:双击列表框修改数据
【新手入门】之十九:从“书与女友恕不外借”谈起——浅谈“Bookmark”的使用
【新手入门】之二十:“书与书签”——bookmark属性答疑
【新手入门】之二十一:记录集的“凌迟”——逐条导出记录集
【新手进阶】之一:基础算法(一)
【新手进阶】之二:基础算法(二)
【新手进阶】之三:基础算法(三)
【新手进阶】之四:基础算法(四)
【新手进阶】之五:排序搜索(一)
【新手进阶】之六:排序搜索(二)
【新手进阶】之七:递归算法
【新手进阶】之八:冒泡排序
【新手进阶】之九:浅谈不绑定数据源操作记录
【新手进阶】之十:工作日的计算
【新手进阶】之十一:“庖丁解牛”和“纪昌学射”——浅谈表格式文本数据的导入
【新手进阶】之十二:从四脚腾空的奔马谈起——原来界面可以这样设计
【新手进阶】之十三:Outlook风格导航界面
【新手进阶】之十四:仓库管理系统
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|