问题描述
我已经导入了一个现有的 excel 文件,并将其创建为访问中的表“产品”。它已经有几行现有数据。我已经根据表格创建了一个用于数据输入的表格。
我想在 ProductNo 单元格中输入多个值,以逗号分隔(如下所示)
PID (PK - Autonum) | PCR | ProductNo | 标题 | 单位 | 部门 | 日期 | 评论 |
---|---|---|---|---|---|---|---|
PCR1 | p210en、p213es、p217er | PCR1 标题说明 | 2 | D1 | 1/23/21 | fdsfsdf |
和保存记录,它必须拆分单元格值并将其保存为后端产品表中的多条记录。
PID (PK - Autonum) | PCR | ProductNo | 标题 | 单位 | 部门 | 日期 | 评论 |
---|---|---|---|---|---|---|---|
PCR1 | p210en | PCR1 标题说明 | 2 | D1 | 01/23/2021 | fdsfsdf | |
PCR1 | p213es | PCR1 标题说明 | 2 | D1 | 01/23/2021 | fdsfsdf | |
PCR1 | p217er | PCR1 标题说明 | 2 | D1 | 01/23/2021 | fdsfsdf |
我不想编辑产品中的现有数据。它仅正确反映 ProductNo 中的一个值。我只想更新表单中输入的值。
我已经寻找了类似的 vba 代码,并找到了修改现有表中数据的代码。
我以前使用过 sql,但使用 Access/VBA 代码不多。我有编程知识。任何帮助表示赞赏。谢谢:)
更新 - 可能的解决方案:
这就是我所做的。我创建了一个临时表“TempProduct”,用于输入数据,当我单击“保存”按钮时,我有以下 vba 代码将单元格数据拆分为多条记录并将其添加到原始表中。>
enter code here
Option Compare Database
Private Sub Command11_Click()
Dim db As Database
Dim rs1 As Recordset
Dim rs2 As Recordset
Set db = CurrentDb()
Dim sqlStr,fieldStr As String
Dim i As Integer
sqlStr = "Select PCR,ProductNo,Title,Unit,Dept,Date,Comments from TempProduct"
Set rs1 = db.OpenRecordset(sqlStr)
Set rs2 = db.OpenRecordset("Product")
do while Not rs1.EOF
fieldStr = rs1.Fields(1)
If InStr(fieldStr,",") > 0 Then
myString = Split(fieldStr,")
For i = LBound(myString) To UBound(myString)
rs2.AddNew
rs2!PCR = rs1!ECRNo
rs2!ProductNo = myString(i)
rs2!Title = rs1!Title
rs2!Unit = rs1!Unit
rs2!Dept = rs1!Dept
rs2!Date = rs1!Date
rs2!Comments=rs1!Comments
rs2.Update
Next i
Else
rs2.AddNew
rs2!PCR = rs1!ECRNo
rs2!ProductNo = rs1!ProductNo
rs2!Title = rs1!Title
rs2!Unit = rs1!Unit
rs2!Dept = rs1!Dept
rs2!Date = rs1!Date
rs2!Comments=rs1!Comments
rs2.Update
End If
rs1.MoveNext
Loop
DoCmd.Runsql ("Delete * from TempProduct")
End Sub
它有点工作。尽管只有当再次添加新记录时,才会将多条记录从表单推送到产品表中。即只有在表单中输入第二组记录后,表单中输入的第一条记录才会被拆分并输入到产品表中。
关于如何立即推送记录的任何建议。非常感谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)