Ok... lav dit postnummer om til tal og forespørg databasen via SQL med følgende:
sqlby = "SELECT * FROM postby WHERE postnummer = " & posten
Det er det hele, du skal kun, som smorch også siger, bruge plinger ( ' ) for at afgrænse tekst. Rene tal skal ikke afgrænses.
Der iøvrigt heller ikke grund til at du vælger alt fra tabellen hvis du kun skal have fat i bynavnet. Du kan til fordel gøre følgende i SQL:
sqlby = "SELECT by FROM postby WHERE postnummer = " & posten
På den måde vælger du kun bynavnet, og kan derfor udskrive det på følgende måde:
Response.Write(Conn.Execute(sqlby))
Idet du kun får én enkelt celle udskrevet er det ikke nødvendigt at definere den ved først at sætte en variabel til at demme indholdet.
Dit problem består i at du ikke kan hente noget fra din postby tabel sålænge du ikke har sat noget recordset som du har gjort med personsql (Set person = Conn.Execute(personsql) ).
Du kan naturligvis også vælge at først gemme indholdet i en variabel ved at gøre følgende (som du faktisk allerede har gjort):
tekstby = Conn.Execute(sqlby)
Lad mig lige tage den helt fra toppen med mine egne ideer til hvordan den skal se ud, ok... ;)
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("udvalgende.mdb")
Conn.Open DSN
Personsql = "Select postnr from person where id=41"
Set person = Conn.Execute(personsql)
posten = person("postnr")
response.write(posten)
sqlby = "SELECT by FROM postby WHERE postnummer = " & posten
response.write(Conn.Execute(sqlby))
Conn.Close
Set Conn = Nothing
%>
</body>
</html>
Det er god kodeskig at bruge store bogstaver når du skriver SQL, altså således at alt SQL-sproget står med stort og alle tabelnavne osv stå med småt.
Håber du kunne bruge det til noget
Held og lykke
Dysmorf