Avatar billede hellstern Nybegynder
26. august 2000 - 21:17 Der er 12 kommentarer

VB <> Access

Jeg har en Form i VB hvorpå der er en datakontrol, der referer til en Access database, og til en forespørgsel i denne database. Forespørgsel indeholder en relation mellem to tabeller. Relationen er lavet så man bare skal skrive postnummeret og så kommer byen selv, det virker fint inde i Access.
Problemet er at i VB kommer byen ikke før man har forladt posten, jeg ville gerne have byen til at komme når jeg forlader det felt hvor jeg indtaster postnummeret. Hvilken kode skal jeg bruge til dette ?

Hilsen
Tue
Avatar billede tomasc Nybegynder
26. august 2000 - 23:11 #1
Hvad med en .Refresh ?
Avatar billede driis Nybegynder
27. august 2000 - 02:48 #2
Umiddelbart vil jeg mene, at tomasc\'s svar løser problemet - hvis ikke så sig lige til...
Avatar billede hellstern Nybegynder
27. august 2000 - 12:04 #3
Jeg har prøvet med data1.refresh problemet er at man bliver ført tilbage til første post hvilket ikke er så godt.

Tue
Avatar billede skwat Praktikant
27. august 2000 - 12:42 #4
prøv at lægge en stump kode ind i keypress eventet og evt. validere med len(txtind.text)=4
den vil virke er jeg ret sikker på
Avatar billede hellstern Nybegynder
27. august 2000 - 13:44 #5
Hej Skwat
Hvilken stump kode mener du ?
skal det være data1.reresh eller bare en validering eller hv ?
Tue
Avatar billede tomasc Nybegynder
27. august 2000 - 21:44 #6
--> hellstern (betyder det \"helvedesstjerne\"?)

Du må vist komme med med lidt mere specifikke oplysninger, før vi kan hjælpe dig. Hvordan ser din forespørgsel ud, og hvordan ser din kode ud, der hvor du forsøger at \"slå op\" i basen?
Avatar billede hellstern Nybegynder
27. august 2000 - 21:53 #7
Hej
Nej, du kan ikke Tysk, Hellstern betyder klare stjerne ;-)
Forespørgslen er meget simpel det er en sammen kædning af to tabeller. Den ene inde holder Alm. Person oplysninger og Postnummer, den anden tabel indeholder to felter Postnummer og By.
I Access virker denne forespørgsel fint, det gør den også i VB formen, men problemet er at jeg meget gerne vil have vis by navnet når jeg indtaster post nummeret. Posten bliver først opdateret når jeg forlader posten.
Der er ikke lagt noget spec. kode ind i VB formen. Der er kun indsat en datakontrol og der er indsat tekst felter der er bundet til de forskellige felter i forespørgslen.
Håber den lidt indviklede forklaring kan hjælpe lidt ??

Hilsen
Tue
Avatar billede tomasc Nybegynder
27. august 2000 - 21:58 #8
Korrekt. Jeg kan ikke tysk.

Hvad hvis du bruger en .Refresh, hver gang der tastes i postnummer feltet? Så vil der blivet slået op i basen for hver tastetryk.

Hvad gør du når du \"forlader posten\", så den bliver opdateret?

Igen. Det er lidt svært at komme med noget konkret, når du ikke har kommet med noget konkret...
Avatar billede hellstern Nybegynder
28. august 2000 - 08:37 #9
Hej
Jeg prøver lige igen ;-)

Jeg har følgende;

VB Form;
Med en datakontrol Data1, der er linket til en Access 97 database og en forespørgsel i denne database.
På Formen er der et tekstfelt for hvert felt i forespørgslen.

Så lang så godt, det virker fint.

Problemet er ikke linket til databasen, men det at når man indtaster et postnummer se man ikke den rigtige by før man har forladt posten, f.eks. ved at gå til forige post og så gå tilbage til posten.

Jeg ville geren have at byen blev vist når man forlod postnummerfeltet. Jeg har prøvet med Data1.Refresh, problemet er at man så ender på første post.

Håber at dette er mere konkret :-)

Tue
Avatar billede tomasc Nybegynder
28. august 2000 - 08:49 #10
Jeg tror at du har misforstået mig.

Når jeg siger - øh, undskyld skriver - \"noget konkret\", mener \"lige så konkret som Visual Basic vil have det\".

Du kommer med en verbal beskivelse af hvad du gør, men ikke konkret hvordan!

Da vi (eller i hvertfald jeg) har svært ved at se hvorfor du overhovedet har et problem, vil det være rart at kunne genskabe problemet hos sig selv. Det kan man ikke ud fra en verbal beskrivelse, men kræver at vi får at se PRÆCIS hvad du gør.

Med andre ord, lad os SÅ se din kode!

:-)
Avatar billede hellstern Nybegynder
28. august 2000 - 08:55 #11
Hej Tomasc,
Jeg vil meget gerne vise min kode, men der er INGEN !!!
Alt er sat op gennem egenskaber på Datakontrollen og på det enkelte tekstfelt.

Mit problem er kun at jeg vil se byen når jeg indtaster postnummeret, uden at forlade posten. Det er ikke noget problem at gøre dette i en Access form, men det skal være på en VB form.

Tue
Avatar billede peter_jensen Nybegynder
27. december 2001 - 14:05 #12
Hej Hellstern !

Jeg har haft samme problem, og løste dengang problemet ved at lave 2 comboboxe ved siden af mine 2 textboxe til henholdsvis postnummer og Bynavn. I koden til hver combobox bruger jeg comboboxens listindex til at referer til data i den anden combobox.

Kode:

Private Sub Form_Load()
Dim db As Database
Dim rs As Recordset

Set db = OpenDatabase(App.Path & \"\\testPostnr.mdb\")
Set rs = db.OpenRecordset(\"Postnumre\")
rs.MoveFirst
Do While Not rs.EOF
    Combo1.AddItem rs!Postnummer
    Combo2.AddItem rs!Bynavn
    rs.MoveNext
Loop
End Sub

Private Sub Combo1_Click()
NyPerson(5).Text = Combo1.Text
NyPerson(6).Text = Combo2.List(Combo1.ListIndex)
End Sub

Private Sub Combo2_Click()
NyPerson(6).Text = Combo2.Text
NyPerson(5).Text = Combo1.List(Combo2.ListIndex)
End Sub


Når du vælger data i den ene combobox (f.eks. postnr), fyldes dine to textboxe med den valgte data og henholdvis den data (Bynavn) der hører til postnummeret. Du kan finde en færdig database med postnr og tilhørende bynavne på: http://www.globe.dk/
Download: Eksempler til \"Access 97 - trin for trin\"
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
Kurser inden for grundlæggende programmering

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