Hello...
Jag ställer följande fråga mot en access97 databas. Det jag nu vill få ut är ID nummret ur tabellen "staffinfo"...
SELECT staffinfo.*, settings_office.* FROM staffinfo INNER JOIN settings_office ON staffinfo.Office_Location = settings_office.Office_Location WHERE staffinfo.Firstname LIKE 'Mattias%'
Hur fungerar det när två tabeller joinats och båda innehåller en kolumn med samma namn? Kolumnt "ID" finns i båda tabellerna.
När jag printar ut ID ur min rs så får jag ID värdet ur ""fel"" tabell.
<%=rsStaff("ID")%>
Kör jag frågan manuellt i access så lägger access till tabellnamnet innan kolumnrubriken. Detta verkar inte gå att få fram i min Record Set ?"!
Är det någon som kan förklara vad som händer här... :OO
Grrrr.... Detta borde gå att få att funka tycker jag...
Om jag dumpar ut min record set i en array och printar ut rubb och stubb så ser jag att ID nummret i tabellen "staffinfo" finns där. MEN hur accessar jag den informationen med en vanlig <%= rsUpdate("ID") %> ???
Så här dumpar jag ut samma fråga som ovan (vilket fungerar):
<%
'***** Skapar Connection-objektet *****'
Set connect = Server.CreateObject("ADODB.Connection")
'***** Specifierar sökvägen *****'
MdbFilePath = Server.MapPath("/staffdatabase/newstaffdatabase.mdb")
'***** öppnar databasen *****'
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
%>
<%
sql = "SELECT staffinfo.*, settings_office.* FROM staffinfo INNER JOIN settings_office ON staffinfo.Office_Location = settings_office.Office_Location WHERE staffinfo.Firstname LIKE 'mattias%' "
response.write "<hr>" &sql &"<hr>"
set rsUpdate = connect.execute(sql)
%>
<!--- Arkivera följande --->
<%
Dim myArray
myArray = rsUpdate.GetRows()
rsUpdate.close
set rsUpdate= nothing
connect.Close
set connect = nothing
AntaletKolumner = ubound(myArray,1)
AntaletRader = ubound(myArray,2)
Response.Write "<table border =1>"
' Rubrikerna
For i = 0 to AntaletKolumner
Response.Write "<td bgcolor=eeeeee>" & i
Response.Write "</td>"
next
for vA = 0 to AntaletRader
' Rader
response.write "<tr>"
for vB = 0 to AntaletKolumner
Response.Write "<td>"
response.write myArray(vB,vA)
Response.Write "</td>"
Next
response.write "</tr>"
next
Response.Write "</table>"
%>
Men det skulle vara mycket enklare, och snyggare, om det var möjligt att printa ut värdet direkt med <%= rsUpdate("ID") %>.
Please give me som info...
Mvh
@ndersMedlem sedan juni 200032 969 inlägg Om du har flera fält som heter likadant får du ge fälten alias. Dvs, du får specificera ett namn i SQL-frågan. Om du inte vill specificera alla fält i tabellen, så kan du använda * också, om du kan leva med att du får med id två gånger.
Exempel:
sql = "SELECT staffinfo.ID As StaffID, staffinfo.*, settings_office.ID as SettingsID, settings_office.* FROM staffinfo INNER JOIN settings_office ON staffinfo.Office_Location = settings_office.Office_Location WHERE staffinfo.Firstname LIKE 'mattias%' "
Sedan hämtar du ut mha de alias du specificerat i frågan.
<% = RSUpdate("StaffID") %>
Mvh,
Tack anders. Lärde mig något nytt i dag också!
Det där var (för mig) lite långsökt. Tackar för hjälpen. Det fungerar!
Hade tagit åratal innan jag skulle ha testat mig fram till detta ;)