A.D.TEJPAL
adtp at hotmail.com
Tue Jun 13 13:42:27 CDT 2006
William,
Apart from Null values, it would also be desirable to cater to following type of contents for field ExhProducts in table tblSHOWDir, each of which should get translated to test1 in field txtExhProdCat in tabletblExhibitorProducts
test1
\test1
\test1\
Modified sub-routine given below should cover all such contingencies, including Null values.
Best wishes,
A.D.Tejpal
---------------
========================================
Sub ParseProductCategories()
Dim db As dao.Database
Dim rst1 As dao.Recordset, rst2 As dao.Recordset
Dim Rtv As Variant, Cnt As Long
Set db = CurrentDb
Set rst1 = db.OpenRecordset("tblSHOWDIR")
Set rst2 = db.OpenRecordset("tblExhibitorProducts")
rst1.MoveFirst
Do While Not rst1.EOF
If Len(rst1!ExhProducts) > 0 Then
Rtv = Split(rst1!ExhProducts, "\")
For Cnt = 0 To UBound(Rtv)
If Len(Rtv(Cnt)) > 0 Then
rst2.AddNew
rst2!EMSID = rst1!EMSID
rst2!txtExhProdCat = Rtv(Cnt)
rst2.Update
End If
Next
Else
rst2.AddNew
rst2!EMSID = rst1!EMSID
rst2.Update
End If
rst1.MoveNext
Loop
rst1.Close
rst2.Close
Set rst1 = Nothing
Set rst1 = Nothing
Set db = Nothing
End Sub
========================================
----- Original Message -----
From: William Hindman
To: Access Developers discussion and problem solving
Sent: Tuesday, June 13, 2006 22:21
Subject: [AccessD] Parsing NULL values
...given A2003 DAO
...given tblSHOWDir with 2 fields: EMSID and ExhProducts
sample data
1234567890 test1\test2\test3\test4\
2345678901 test1\test2\test3\test4/erk\
3456789012
4567890123 test1\test2\test3\
...given tblExhibitorProducts with 2 fields: EMSID and txtExhProdCat
desired data
1234567890 test1
1234567890 test2
1234567890 test3
1234567890 test4
2345678901 test1
2345678901 test2
2345678901 test3
2345678901 test4/erk
3456789012
4567890123 test1
4567890123 test2
4567890123 test3
4567890123 test3
...the below function parses tblSHOWDIR into tblExhibitorProducts correctly
EXCEPT when field ExhProducts is blank
Sub ParseProductCategories()
Dim db As Database
Dim rst1 As Recordset
Dim rst2 As Recordset
Dim txtField1 As Long
Dim txtField2 As String
Set db = CurrentDb
Set rst1 = db.OpenRecordset("tblSHOWDIR")
Set rst2 = db.OpenRecordset("tblExhibitorProducts")
rst1.MoveFirst
Do While Not rst1.EOF
txtField1 = rst1!EMSID
txtField2 = Mid(rst1!ExhProducts, InStr(rst1!ExhProducts, "\") + 1)
rst2.AddNew
rst2!EMSID = txtField1
rst2!txtExhProdCat = Left(rst1!ExhProducts, InStr(rst1!ExhProducts,
"\") - 1)
rst2.Update
Do Until InStr(txtField2, "\") < 1
rst2.AddNew
rst2!EMSID = txtField1
rst2!txtExhProdCat = Left(txtField2, InStr(txtField2, "\") - 1)
rst2.Update
txtField2 = Mid(txtField2, InStr(txtField2, "\") + 1)
Loop
rst1.MoveNext
Loop
End Sub
...how do I handle the "" or nulls?
William