|
目前使用一个表需要回传数据到数据库,而数据增加时使用 RecordSet 的addNew完成,示例代码如下:
- Dim conn As Object
- Set conn = CreateObject("ADODB.Connection")
- ' 连接数据库
- conn.Open "Provider=SQLOLEDB;Data Source=YourServerName;Initial Catalog=YourDatabaseName;User ID=YourUserID;Password=YourPassword;"
- ' 打开记录集
- Dim rs As Object
- Dim strSQL As String
- Set rs = CreateObject("ADODB.Recordset")
- strSQL = " SELECT * FROM YourTable "
- rs.Open strSQL, conn, 2, 2
- ' 新增记录
- rs.AddNew
- rs("FieldName1") = "Value1"
- rs("FieldName2") = "Value2"
- ' 更多字段赋值...
- ' 更新记录
- rs.Update
- ' 关闭记录集和连接
- rs.Close
- conn.Close
复制代码 近期使用过程中有人反馈Excel文件在上传数据时,出现 “内存不足” 相关字样的提示。当时解决办法是将22年的数据备份到新表然后从原表中删除此部分数据,上传数据功能就正常了。然后就看到别人写的SQL语句是类似于上述代码中的strSQL,当时个人猜测是数据库表单数据集庞大,电脑内存条也是一根8G的,代码执行过程中运行这样的语句再来使用RecordSet相关方法来上传是不是就会造成内存不足的情况,现在想到的是把strSQL代码更改如下:
- -- ID为table1 的自增字段,记录数据条数
- SELECT TOP 1 * FROM table1 ORDER BY ID DESC
复制代码 直接找最后一条记录,再使用RecordSet来进行数据的追加操作,这样是不是就不会出现内存不足的情况了?才入门vba不久,希望论坛的各位指教一下
|
|