sql - 如何处理在 DoCmd.RunSQL(INSERT INTO...) 之后找到的 0 行
问题描述
对于初学者,我昨天才开始尝试将 SQL 引入我的 VBA 代码。
我正在尝试使用 VBA/SQL 将数据插入到由数据库表和表单输入组合而成的本地表中。我想知道如何触发“检索到 0 行”。
在运行 DoCmd.RunSQL("INSERT INTO ... SELECT ... FROM ... WHERE ...) 时,我已经尝试在几页上查看如何处理“要插入的 0 行”。
当有数据存在时,代码本身就可以工作,所以这不是问题。
问题本身是当我找不到数据时,我想触发一个消息框,提供有关如何处理当前情况的说明。
可悲的是,我还没有找到如何触发它。
sqlTempInsert = "INSERT INTO tblScanInput (Support, EAN, Counted, Product, Description, Launched, Collected) " & _
"SELECT " & lblSupportData.Caption & ", " & txtEANInput.Value & ", "
If txtAmountInput.Visible = True Then
sqlTempInsert = sqlTempInsert & txtAmountInput.Value & ", "
ElseIf txtAmountInput.Visible = False Then
sqlTempInsert = sqlTempInsert & "1, "
End If
sqlTempInsert = sqlTempInsert & "GEPRO.CODPRO, GEPRO.DS1PRO, GESUPDC.UVCSRV, GESUPDC.UVCLIV " & _
"FROM [Database_Table] GESUPDC LEFT OUTER JOIN [Database_Table] GEPRO ON GESUPDC.CODPRO = GEPRO.CODPRO " & _
"WHERE GESUPDC.NUMSUP = " & lblSupportData.Caption & " AND GESUPDC.EDIPRO = '" & txtEANInput.Value & "';"
DoCmd.RunSQL(sqlTempInsert)
解决方案
Dim db As DAO.Database
Dim x As Long
Set db = CurrentDb
db.Execute sqlTempInsert, dbFailOnError
x = db.RecordsAffected
If x = 0 Then
' nothing was inserted
End If
推荐阅读
- typescript - findOneAndUpdate 不更新
- javascript - 如何从 .then() 中设置组件的属性
- algorithm - 一类 SVC 和二类 SVC 中提到的“100 项功能”是什么?
- testing - 在 deftest 中使用苹果酒调试
- mysql - laravel 查询或左连接出错
- php - 发送多个 $scope。带有 $http.post 的 json 值到 php 页面
- ibm-midrange - 在所有可用的 AS400 库中都存在源
- ios - 当标签栏点击两次时禁用自动弹出到根视图控制器
- javascript - 想从 API 中提取图像,但我的代码只显示文本。我可以知道有什么问题吗?
- multidimensional-array - DAX:如何检查是否为特定维度选择了(全部)值