Skapa en kolumn i tabellen 'members'; som heter typ "klubbid". Sen joinar du dem med SQL-en.
SELECT * FROM members m INNER JOIN klubb k ON m.klubbid = k.id
Vidare; se till att byta ut den där IDG-koden mot nåt sånt här istället;
<%
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db/members.mdb")
SQL = "SELECT * FROM members m INNER JOIN klubb k ON m.klubbid = k.id WHERE m.id = " & CLng(Request("id"))
Set RecSet = Conn.Execute(SQL)%>
Om en medlem ska kunna vara medlem i en klubb tycker jag du kan lagra det i medlemstabellen. Om man ska kunna vara medlem i fler klubbar får du lagra det i en tabell.
Sedan får du joina in den tabellen också. Kanske något sånt här:
SQL = "SELECT members.*, k.klubb FROM (members m INNER JOIN tblMembership ms ON m.id = ms.memberID) INNER JOIN klubb k ON ms.clubID = k.ID WHERE m.id = " & CLng(Request("id"))
Om man gör en korsfråga i access programmet kan jag använda funktionen visa funktionen (SQL) och ta koden där och klistra in?
Exempel fick jag denna kod:
TRANSFORM Count(members.antal) AS Antalförantal
SELECT members.id, members.username, members.klubben, Count(members.antal) AS [Summa av antal]
FROM members
GROUP BY members.id, members.username, members.klubben
PIVOT members.fnamn;
Är det bara klistra in den då?
Jag gjorde det men fick felmeddelande.
SQL = "SELECT TRANSFORM Count(members.antal) AS Antalförantal
SQL = TRANSFORM Count(members.antal) AS Antalförantal
----------------^
Använder denna SQL:
<%
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/members.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = TRANSFORM Count(members.antal) AS Antalförantal
SELECT members.id, members.[username], members.klubben, Count(members.antal) AS [Summa av antal]
FROM members
GROUP BY members.id, members.[username], members.klubben
PIVOT members.fnamn;