[AccessD] SQL Question

Martin Reid mwp.reid at qub.ac.uk
Mon Jun 30 08:44:19 CDT 2003


Test message. No email from this morning

Martin


----- Original Message ----- 
From: "Gustav Brock" <gustav at cactus.dk>
To: <accessd at databaseadvisors.com>
Sent: Tuesday, June 24, 2003 6:25 PM
Subject: Re: [AccessD] SQL Question


> Hi Martin
>
> > Have two tables
>
> > Table A Contains staff data, Name etc
> > Table B contains contact data
>
> > Results of join as expected
>
> > Staff Member A  Telephone Number 1
> > Staff Member A Telephone Number 2
> > Staff Member A Telephone Number 3
>
> > And so on
>
> > What I need to do is to flatten this out and create a single table
>
> > Staff Member A     Phone Number 1     Phone Number 2     Phone Number 3
etc
> > Staff Member B      Phone Number 1    Phone Number 2
>
> > We dont knwo how many numbers will exist for each member of staff but
the Max will be 5 and I must end up with a single table containing the data.
>
> > Need this to work in Access and SQL Server 2000
>
> For Access you'll have to write a function which for each Staff record
> loops through the Contact records.
> Here's an example of the essential part (taken from a report, thus
> you'll have to modify it for writing/updating a table but you'll sure
> get the picture). The ID is lngID:
>
> <snip>
>
>   strSQL = vbNullString
>   strSQL = strSQL + "SELECT Phone "
>   strSQL = strSQL + "FROM tblContacts "
>   strSQL = strSQL + "WHERE (ID = " & lngID & ") "
>   strSQL = strSQL + "ORDER BY Phone;"
>   Set rst = dbs.OpenRecordset(strSQL)
>
>   If rst.RecordCount = 0 Then
>     ' Should not happen.
>   Else
>     ' Count records.
>     lngRecords = rst.RecordCount
>     rst.MoveFirst
>     If lngRecords = 1 Then
>       strPhone = "Telephone number: "
>     Else
>       strPhone = "Telephone numbers: "
>     End If
>     For lngLoop = 1 To lngRecords
>       ' Build line with phone numbers.
>       strPhone = strPhone & rst!Phone
>       If lngLoop = lngRecords Then
>         strPhone = strPhone & "."
>       Else
>         strPhone = strPhone & ", "
>       End If
>       rst.MoveNext
>     Next lngLoop
>   End If
>
>   rst.Close
>   Set rst = Nothing
>   Set dbs = Nothing
>
>   strPhoneNumbers = strPhone
>
> </snip>
>
> _______________________________________________
> 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