Trying to gather data from two tables, place it into a collection and pass it to a flexgrid. Gather the data in class connected to a database. Here is the code for the db connection class:
Public Sub Display(ByRef mcol As Collection, byref aCol as Collection)
Dim displayMem As CMember
Dim displayAttend As New CAttending
sSQL = "SELECT Members.ID, Members.LastName, Members.Firstname, " & _
" Members.Address, Members.City, Members.State,Members.Zip, " & _
" Attending.Deceased FROM Members INNER JOIN Attending ON " & _
" Members.ID = Attending.ID ORDER BY Members.LastName"
With rsmembers
Do Until .EOF
set displayMem = New CMember
displayMem.ID = .Fields("ID"
displayMem.Lastname = .Fields("Lastname"
displayMem.Firstname = .Fields("Firstname"
displayMem.Address = .Fields("Address"
displayMem.City = .Fields("City"
displayMem.State = .Fields("State"
displayMem.Zip = .Fields("Zip"
mcol.Add displayMem
rsMembers.MoveNext
Loop
End If
End With
With rsAttending
Do Until rsAttending.EOF
Set displayAttend = New CAttending
displayAttend.Deceased = .Fields("Deceased"
mcol.Add displayAttend
.MoveNext
Loop
End With
end sub
On the display side or user interface portion:
For Each mMember In mcol
For Each mAttend In aCol
bDead = mAttend.Deceased
sName = mMember.Lastname & ", " & mMember.Firstname
sAddress = mMember.Address
sCity = IIf(mMember.City = "", "", mMember.City & ", " & mMember.State & " " & mMember.Zip)
sBuildString = sName & vbTab & sAddress & vbTab & sCity & vbTab & bDead
fgdMembers.AddItem sBuildString
MsgBox mMember.Lastname & " " & mAttend.Deceased
Next mAttend
Next mMember
This shows the same record twice, once false and once true for deceased. Once that riddle is solved I would like to display "D" or "".
Do I need two collections?
Thanx for your help.
Public Sub Display(ByRef mcol As Collection, byref aCol as Collection)
Dim displayMem As CMember
Dim displayAttend As New CAttending
sSQL = "SELECT Members.ID, Members.LastName, Members.Firstname, " & _
" Members.Address, Members.City, Members.State,Members.Zip, " & _
" Attending.Deceased FROM Members INNER JOIN Attending ON " & _
" Members.ID = Attending.ID ORDER BY Members.LastName"
With rsmembers
Do Until .EOF
set displayMem = New CMember
displayMem.ID = .Fields("ID"
displayMem.Lastname = .Fields("Lastname"
displayMem.Firstname = .Fields("Firstname"
displayMem.Address = .Fields("Address"
displayMem.City = .Fields("City"
displayMem.State = .Fields("State"
displayMem.Zip = .Fields("Zip"
mcol.Add displayMem
rsMembers.MoveNext
Loop
End If
End With
With rsAttending
Do Until rsAttending.EOF
Set displayAttend = New CAttending
displayAttend.Deceased = .Fields("Deceased"
mcol.Add displayAttend
.MoveNext
Loop
End With
end sub
On the display side or user interface portion:
For Each mMember In mcol
For Each mAttend In aCol
bDead = mAttend.Deceased
sName = mMember.Lastname & ", " & mMember.Firstname
sAddress = mMember.Address
sCity = IIf(mMember.City = "", "", mMember.City & ", " & mMember.State & " " & mMember.Zip)
sBuildString = sName & vbTab & sAddress & vbTab & sCity & vbTab & bDead
fgdMembers.AddItem sBuildString
MsgBox mMember.Lastname & " " & mAttend.Deceased
Next mAttend
Next mMember
This shows the same record twice, once false and once true for deceased. Once that riddle is solved I would like to display "D" or "".
Do I need two collections?
Thanx for your help.