Avatar billede suppenudel Nybegynder
21. januar 2005 - 14:18 Der er 9 kommentarer og
1 løsning

Finde by udfra postnummer

Hej, jeg har lige lavet denne Sub som eksekverer når brugeren vælger en by i en lstboks:

Public Sub LstPostnr_Changed(Sender As Object, E As EventArgs)

Dim strSQL as string

    objConn.Open()

    strSQL = "SELECT Distinct By FROM Post_tabel WHERE Land =
'" & LstCountry.SelectedItem.Value & "' AND Postnr = '" &      LstPostnr.SelectedItem.Value & "';"
   
    objComm = New OleDbCommand(strSQL, objConn)
    objDataReader = objComm.ExecuteReader()   

    TxtBy.Text = objDataReader("By")   

    TxtBy.Text = lstPostnr.SelectedItem.Text

objDataReader.Close()
End Sub

Hvis jeg tester sql'en i Access virker det fint, men programmet melder den: "No data exists for the row/column."

Hvad er det lige jeg mangler?
Avatar billede burningice Nybegynder
21. januar 2005 - 14:47 #1
pprøv at lave en Response.Write på din sql istedet for at eksekvere den for at se hvilke værdier der bliver sat ind for land og postnr
Avatar billede suppenudel Nybegynder
21. januar 2005 - 14:58 #2
Det har jeg også forsøgt, her skriver den:

SELECT Distinct By FROM Post_tabel WHERE Land = 'Danmark' AND Postnr = '1002';

Og sætter jeg den sætning ind i Access, finder den København K som den skal..
Avatar billede suppenudel Nybegynder
21. januar 2005 - 14:59 #3
Hov. Det skal lige siges at linien

TxtBy.Text = lstPostnr.SelectedItem.Text

ikke skal være med!
Avatar billede burningice Nybegynder
21. januar 2005 - 15:00 #4
hm... Postnr.. hvilken type er det i databasen. Tekst eller Nummer?
Avatar billede suppenudel Nybegynder
21. januar 2005 - 15:05 #5
Det er tekst, men det hjælper ikke at bytte .Value ud med .Text
Avatar billede burningice Nybegynder
21. januar 2005 - 15:55 #6
aah.. du har da også glemt at kalde .Read() funktionen på din reader først. Prøv forresten bare at bruge ExcecuteScalar istedet, når det kun er en enkelt værdi du skal have ud

    objComm = New OleDbCommand(strSQL, objConn)
    TxtBy.Text = CType(objComm.ExecuteScalar(), String)

    objConn.Close()
Avatar billede suppenudel Nybegynder
21. januar 2005 - 16:10 #7
Ja okay, jeg vidste bare ikke helt hvordan jeg skulle kalde .read() når det kun drejer sig om en enkelt værdi. Hvad ville den hedde mht mit eksempel?

Men alle tiders ellers, med dit eksempel! :-)
Avatar billede burningice Nybegynder
21. januar 2005 - 16:46 #8
i dit eksempel skal du bare sørge for at avancere til din første record inden du aflæser den:

    objComm = New OleDbCommand(strSQL, objConn)
    objDataReader = objComm.ExecuteReader() 
   
    objDataReader.Read()
    TxtBy.Text = objDataReader("By")
Avatar billede suppenudel Nybegynder
23. januar 2005 - 15:21 #9
Okay!

Jeg takker for dit svar :-)
Avatar billede burningice Nybegynder
23. januar 2005 - 15:28 #10
:) svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester