Hej gott folk, jag har precis börjat att titta på det här med asp och SQl. Har städat och donat i din kod. Har inte databasen att testa med. Så den funkar säkert inte felfritt. Krävs nog lite meckande. Men det är nog en bra start... hello, Frågan kommer fungera fast tabbelnamnet kommer också förekomma i de fält som det finns mer än en av. Hej igen folkproblem med öppna fil med asp
Jag har lite frågor som jag hoppas att få svar på.
Jag har en access 2000 mdb fil som innehåller 3 tabeller, det är en enkel adressbok, tabellerna är relaterade till varandra genom en master tabell som har en räknare som heter namnID, tabell som heter postnummer med primärnyckel postID som är knuten till en kolumn i
master (postID), den tredje tabellen heter kateg och har primärnyckelräknare kategID som är bunden till master (kategID).
Problemet som jag har är att jag i asp bara kan öppna en tabell åt gången försöker jag med fler blir det pannkaka, se koden under (två tabeller men ser gärna att jag får förslag på hur göra med alla tre)
Set MinCon = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
MinCon.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Inetpub\wwwroot\mindatabas\ny0606\adressboken.mdb"
SQL = "SELECT * From t_master, t_postnummer"
rs.Open SQL, MinCon
rs.Open SQL, MinCon
Do While Not rs.EOF
%>
<TR>
<TD><%=rs("namnID")%>
<TD><%=rs("efternamn")%>
<TD><%=rs("fornamn")%>
<TD><%=rs("fornamn")%>
<TD><%=rs("adress")%>
<TD><%=rs("postID")%>
<TD><%=rs("telefon")%>
<TD><%=rs("mobil")%>
<TD><%=rs("e-post")%>
<TD><%=rs("hemsida")%>
<TD><%=rs("datum")%>
<TD><%=rs("PM")%>
<TD><%=rs("namnID")%>
<TD><%=rs("bil")%>
<TD><%=rs("kategoriID")%>
<TD><%=rs("bild")%>
<TD><%=rs("uppdaterat")%>
<TD><%=rs("kön")%>
<TD><%=rs("postID")%>
<TD><%=rs("postnummer")%>
</TR>
<%
rs.MoveNext
Loop
%>
,,,
tacksam för all hjälp jag kan få.
go kväll
RobbanSv: problem med öppna fil med asp
Använder mig inte av ODBC utan OLEDB Providern för Access.
Samt fält variabler vilket är bättre ur prestanda synpunkt...
<TABLE>
<TR>
<TD>NamnID</TD>
<TD>Efternamn</TD>
<TD>Förnamn</TD>
<TD>Adress</TD>
<TD>PostID</TD>
<TD>Telefon</TD>
<TD>Mobil</TD>
<TD>e-post</TD>
<TD>Hemsida</TD>
<TD>Datum</TD>
<TD>PM</TD>
<TD>NamnID</TD>
<TD>Bil</TD>
<TD>KategoriID</TD>
<TD>Bild</TD>
<TD>Uppdaterat</TD>
<TD>Kön</TD>
<TD>PostID</TD>
<TD>Postnummer</TD>
</TR>
<%
Dim Conn
Dim rsTemp
Dim fldNamnID
Dim fldEfterNamn
Dim fldFornamn
Dim fldAdress
Dim fldPostID
Dim fldTelefon
Dim fldMobil
Dim fldEPost
Dim fldHemsida
Dim fldDatum
Dim fldPM
Dim fldNamnID
Dim fldBil
Dim fldKategoriID
Dim fldBild
Dim fldUppdaterat
Dim fldKön
Dim fldPostNummer
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\mindatabas\ny0606\adressboken.mdb;Persist Security Info=False"
Set rsTemp = Server.CreateObject("ADODB.Recordset")
rsTemp.Open "SELECT * FROM (t_master LEFT JOIN t_postnummer ON t_master.postID = t_postnummer.postID) LEFT JOIN t_kateg ON t_master.kategID = t_kateg.kategID", MinCon
Set fldNamnID = rs("namnID")
Set fldEfterNamn = rs("efternamn")
Set fldForNamn = rs("fornamn")
Set fldAdress = rs("adress")
Set fldPostID = rs("postID")
Set fldTelefon = rs("telefon")
Set fldMobil = rs("mobil")
Set fldEPost = rs("e-post")
Set fldHemsida = rs("hemsida")
Set fldDatum = rs("datum")
Set fldPM = rs("PM")
Set fldNamnID = rs("namnID")
Set fldBil = rs("bil")
Set fldKategoriID = rs("kategoriID")
Set fldBild = rs("bild")
Set fldUppdaterat = rs("uppdaterat")
Set fldKön = rs("kön")
Set fldPostNummer = rs("postnummer")
Do Until rsTemp.EOF
%>
<TR>
<TD><%=fldNamnID%></TD>
<TD><%=fldEfterNamn%></TD>
<TD><%=fldForNamn%></TD>
<TD><%=fldAdress%></TD>
<TD><%=fldPostID%></TD>
<TD><%=fldTelefon%></TD>
<TD><%=fldMobil%></TD>
<TD><%=fldEPost%></TD>
<TD><%=fldHemsida%></TD>
<TD><%=fldDatum%></TD>
<TD><%=fldPM%></TD>
<TD><%=fldNamnID%></TD>
<TD><%=fldBil%></TD>
<TD><%=fldKategoriID%></TD>
<TD><%=fldBild%></TD>
<TD><%=fldUppdaterat%></TD>
<TD><%=fldKön%></TD>
<TD><%=fldPostNummer%></TD>
</TR>
<%
rsTemp.MoveNext
Loop
%>
</TABLE>Sv: problem med öppna fil med asp
eftersom flera av fältnamnen i respektive tabell har samma namn funkar det inte med att köra - SELECT *
Du måste "specifiera" varje fält i select uttrycket på detta vis:
strSQL = "SELECT tbl_tabell1.falt1 As fld1, tbl_tabell2.falt1 As fld2 ......
annars ser leftjoinen ut att vara rätt.
När du sedan vill "använda" fälten i rs: fltFalt1 = rs("fld1")
cya,
PatrikBSv: problem med öppna fil med asp
Gissar på:
t_master.postID
t_postnummer.postID
och
t_master.kategID
t_kateg.kategID
Så man får istället skriva:
Set fldPostID = rs("t_master.postID")
Set fldKategoriID = rs("t_master.kategID")Sv: problem med öppna fil med asp
jag har fixat och trixat lite med Anders kod lir och fått det att funka med två av tabellerna men inte med den tredje, det verkar skita sig i left joinen, jag har ändrat så att det inte finns likadana namn,
Är det någon som vet var jag hittar bra info om SQL för asp, jag har letat igenom dev studio och accessen utan att hitta något.
<%
Dim Conn
dim sql
Dim rsTemp
Dim fldID
Dim fldEfterNamn
Dim fldFornamn
Dim fldAdress
Dim fldPostnummer
Dim fldPostID
Dim fldort
Dim fldTelefon
Dim fldMobil
Dim fldEPost
Dim fldHemsida
Dim fldDatum
Dim fldPM
Dim fldKon
Dim fldBil
Dim fldtKategoriID
Dim fldKategoriID
Dim fldKategori
Dim fldUppdaterat
Set Conn = Server.CreateObject("ADODB.Connection")
///'Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\mindatabas\ny0606\platt.mdb;Persist Security Info=False" denna får jag inta att funka alls ///
Set rsTemp = Server.CreateObject("ADODB.Recordset")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Inetpub\wwwroot\mindatabas\ny0606\tretabell.mdb"
sql = "SELECT * FROM (t_master1 LEFT JOIN t_postnummer ON t_master1.postnummer = t_postnummer.postID)LEFT JOIN t_kategoriID ON t_master.tkategoriID = t_kategori.kategoriID)"
///'rsTemp.Open "SELECT * FROM (t_master1 LEFT JOIN t_postnummer ON t_master1.postnummer = t_postnummer.postID) LEFT JOIN t_kategegori ON t_master.tkategoriID = t_kategori.kategoriID", MinConn denna får jag inte alls att funka///
rsTemp.Open sql,Conn
Set fldID = rsTemp("ID")
Set fldEfterNamn = rsTemp("efternamn")
Set fldForNamn = rsTemp("fornamn")
Set fldAdress = rsTemp("adress")
Set fldPostnummer = rsTemp("postnummer")
Set fldPostID = rsTemp("postID")
Set fldort = rsTemp("ort")
Set fldTelefon = rsTemp("telefon")
Set fldMobil = rsTemp("mobil")
Set fldEPost = rsTemp("e-post")
Set fldHemsida = rsTemp("hemsida")
Set fldDatum = rsTemp("datum")
Set fldPM = rsTemp("PM")
Set fldKon = rsTemp("kon")
Set fldBil = rsTemp("bil")
Set fldtKategoriID = rsTemp("tkategoriID")
'Set fldkategorID = rsTemp("kategoriID")
'Set fldKategori = rsTemp("kategori")
Set fldUppdaterat = rsTemp("uppdaterat")
Do Until rsTemp.EOF
%>
<TABLE cellSpacing=1 cellPadding=1 width="75%" border=1>
<TR>
<TD><%=fldID%></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><%=fldEfterNamn%></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><%=fldForNamn%></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><%=fldAdress%></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><%=fldPostnummer%></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><%=fldort%></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><%=fldTelefon%></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><%=fldMobil%></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><%=fldEPost%></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><%=fldHemsida%></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><%=fldDatum%></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><%=fldPM%></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><%=fldKon%></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><%=fldBil%></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><%=fldKategori%></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><%=fldUppdaterat%></TD>
<TD></TD>
<TD></TD></TR></TABLE>
<%
rsTemp.MoveNext
Loop
%>
</table>