Access 2016:在一个单元格中输入多个值并将其保存为同一表中的多个记录

问题描述

我已经导入了一个现有的 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 (将#修改为@)