Ms access 如何使用ms access查询将ms access中的一列数据转换为多行
我在ms access表中的内容如下所示Ms access 如何使用ms access查询将ms access中的一列数据转换为多行,ms-access,Ms Access,我在ms access表中的内容如下所示 编号购买 101产品1产品2产品3 102产品1产品2 我想使用ms access query(仅使用select query)将其转换为以下格式 编号购买 101产品1 101产品2 101产品3 102产品1 102产品2 我无法将列转换为行,在表中我有一列,其中多个值由空格分隔,我必须在ms access select query中将其逐行转换为行 请任何人都可以帮助我如果你愿意使用代码,那么这是很容易的 使用以下代码计算空格数 Public Fu
请任何人都可以帮助我如果你愿意使用代码,那么这是很容易的 使用以下代码计算空格数
Public Function calculateSplits(InputRecord as String)
Dim recordWithoutSpaces as String
Dim noOfSpaces as Integer
recordWithoutSpaces = Replace(InputRecord," ","")
noOfSpaces =Len(InputRecord) -Len(recordWithoutSpaces )
calculateSplits = noOfSpaces
End Function
然后使用以下代码拆分记录
Public Function ParseText(TextIn As String, x As Byte, Optional MyDelim As String) As Variant
On Error Resume Next
If Len(MyDelim) > 0 Then
ParseText = Split(TextIn, MyDelim)(x)
Else
ParseText = Split(TextIn, " ")(x)
End If
End Function
然后,您只需创建一个函数来读取您的表,并将记录附加到另一个根据需要拆分的表中
根据你的最新代码
Private Sub Command0_Click()
Dim myDelim As String
Dim strSQL As String ' want to insert the ParseText value into the new cust_info table
Dim ParseText As String
myDelim = " "
If Len(myDelim) > 0 Then
For i = 0 To 3 ' <-- n+1 CalculateSplits e.g if you have found 3 splits (spaces) then i =0 to 4
ParseText = Split("101 product1 product2 product3", myDelim)(i)
strSQL = "INSERT INTO cust_info([cust_id], [cust_prods]) VALUES ('" & i + 1 & "','" & ParseText & "');"
DoCmd.RunSQL strSQL
Next
End If
End Sub
Private子命令0\u Click()
像细绳一样暗淡
Dim strSQL As String'要将ParseText值插入新的cust_info表中吗
将文本解析为字符串
myDelim=“”
如果Len(myDelim)>0,则
对于i=0到3’,所以。。。你试过什么?由于您是新手,我强烈建议您阅读我们的,尤其是。嗨,John,这是我添加到您的ParseText函数中的新代码。。。如果Len(MyDelim)>0,则对于I=0到x,ParseText=Split(TextIn,MyDelim)(I)Dim strSQL作为字符串“希望将ParseText值插入新的cust_info表strSQL=”insert into cust_info([cust_id],[cust_prods])值(1,“&ParseText&“;”DoCmd.RunSQL strSQL下一步。。。上面的插入语句不起作用,请帮助我,谢谢,Amay看一看我修改过的答案谢谢john你的代码运行得很好,但面临一个新问题插入查询不起作用,因为我不知道如何形成连接字符串并安装ms access驱动程序你能给我介绍一下什么是ms access驱动程序吗?当我们插入ms access表时,我们需要ms access驱动程序安装我正在使用下面的constring constring=“Driver={MicrosoftAccessDriver(*.mdb)};DBQ=C:\Users\Upendra\Downloads\Compressed\AgeRange.mdb;Persist Security Info=False;“con.Open constring strSQL=”插入emp_详细信息([emp_no],[emp_Info])值(“&i+1&”,“&ParseText&”);”con.执行strsqldocmd.RunSQL strSQL,但当从emp_详细信息表中选择我时,没有插入任何内容