[AccessD] Parsing NULL values

DWUTKA at marlow.com DWUTKA at marlow.com
Tue Jun 13 12:01:36 CDT 2006


I may be missing something here, but why not put an If Then clause around
the area that would be affected if ExhProducts is "" or Blank.  Like this:

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
	if IsNull(rst1!ExhProducts)=False AND rst1!ExhProducts<>"" then
	    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
	end if
	rst1.MoveNext
Loop
End Sub

-----Original Message-----
From: William Hindman [mailto:wdhindman at dejpolsystems.com]
Sent: Tuesday, June 13, 2006 11:52 AM
To: Access Developers discussion and problem solving
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 



-- 
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com



More information about the AccessD mailing list