Avatar billede whistler_whistler Nybegynder
27. januar 2002 - 20:07 Der er 16 kommentarer og
1 løsning

Hente data fra database

Jeg har en tabel som hedder varer. I denne tabel er det flg felter: varenr, varebeskrivelse, anvendelse, mål, antal, billede. Jeg har så en form hvor der vises alle de varer som findes, men kun nogle af oplysningerne om de enkelte varer er oplyst på denne form. Jeg har så tænkt mig at lave en ekstra form hvor alle oplysningerne om den enkelte varer vises. Det unikke ved hver vare er dets varenr. Derfor her jeg tænkt på nget med WHERE, men jeg kan ikke få det til at fungere.
Avatar billede terry Ekspert
27. januar 2002 - 20:13 #1
"SELECT * FROM varer WHERE varenr = " & SomeFieldContainingVareNr
Avatar billede whistler_whistler Nybegynder
27. januar 2002 - 21:22 #2
jeg kan ikke få det til at virke. Her er den kode jeg forsøger mig med:
Private Sub Command1_Click()
Dim dbs As Database, rst As Recordset
Set dbs = OpenDatabase("c:\hej.mdb")
Set rst = dbs.OpenRecordset("SELECT antal FROM varer " & "WHERE varenr = & text1(0).Text")
text1(1).text = rst("antal")
End Sub
Avatar billede dimle Nybegynder
27. januar 2002 - 21:30 #3
Det er linien: Set rst = dbs.OpenRecordset("SELECT antal FROM varer " & "WHERE varenr = & text1(0).Text") - der er gal!!!

Den skal laves om til:
Set rst = dbs.OpenRecordset("SELECT antal FROM varer WHERE varenr = " & text1(0).Text)
Avatar billede terry Ekspert
28. januar 2002 - 08:18 #4
Set rst = dbs.OpenRecordset("SELECT antal FROM varer WHERE varenr = " & text1(0).Text )

If your varenr is a TEXT field then use
Set rst = dbs.OpenRecordset("SELECT antal FROM varer WHERE varenr = '" & text1(0).Text & "'" )

In your question you say you want to show all fields (hvor alle oplysningerne ...)
So you must use SELECT *
SELECT antal only gives you the contents of antal.
Avatar billede whistler_whistler Nybegynder
28. januar 2002 - 13:14 #5
Det virker stadig ikke. dimles svar giver en fejl med et eller ande med at der er for få parameter, og at den havde forventet 1. terrys svar kan jeg slet ikke få til at fungere, den siger allerede fejl efter jeg flytter markøren fra linien. det kan godt være det er mig der klokker i der ;-)
Avatar billede terry Ekspert
28. januar 2002 - 13:21 #6
whistler... In my example
"SELECT * FROM varer WHERE varenr = " & SomeFieldContainingVareNr

YOU MUST replace SomeFieldContainingVareNr  with the correct value how you get hold of this is up to you!
Avatar billede terry Ekspert
28. januar 2002 - 13:24 #7
If your Private Sub Command1_Click() is on the same form then you have to refer to a field on the form.

Set rst = dbs.OpenRecordset("SELECT antal FROM varer WHERE varenr = " & Me.TheField )
Avatar billede whistler_whistler Nybegynder
28. januar 2002 - 14:33 #8
den kommer stadig med samme fejl: "to few arguments. expectet 1." Der er vel ikke en som gider sende et lille program som kan det til. email: post@fjenneslevautovaerksted.dk
Avatar billede terry Ekspert
28. januar 2002 - 14:39 #9
sending you a "lille program" will NOT help much, it is your program which is the problem!
You can sen dit to terry@santhell.dk and I will take a look this evening.
Include a refrenece to this queistion so that I know where the mail is from and also which forms to look at
Avatar billede dimle Nybegynder
28. januar 2002 - 15:04 #10
Har du prøvet at kopiere linien herunder direkte ind i stedet for den der giver fejl??

Set rst = dbs.OpenRecordset("SELECT antal FROM varer WHERE varenr = " & text1(0).Text)

Jeg har lige prøvet at kopiere den ind, og den giver i hvert fald ingen fejl når man lige forlader linien!! Prøv det!!
Avatar billede terry Ekspert
28. januar 2002 - 15:08 #11
dimle>I am sure that your example works in YOUR program but it doesnt seem to work in Whistlers! does he have a field text1(0).Text? if not thenhe is goingto get an error. Your example is no different from
Set rst = dbs.OpenRecordset("SELECT antal FROM varer WHERE varenr = " & Me.TheField )
other than the Me.field bit, but if Whistlers doesnt understand what we are trying to tell him then we have a problem!

:o)
Avatar billede dimle Nybegynder
28. januar 2002 - 16:39 #12
Terry> Jeg tror ikke at whistler's VB er så forskelligt fra vores - derfor kan det ikke gå galt hvis han koperer sætningen direkte ind!
Avatar billede dimle Nybegynder
28. januar 2002 - 16:40 #13
Whistler> har du en textbox der har navnet Text1 og index værdien 0??? Selvom du ikke har det skulle det alligevel ikke give nogen fejl med det samme du forlader linien!!!
Avatar billede whistler_whistler Nybegynder
28. januar 2002 - 17:40 #14
ja det skulle jeg mene. terry>> Jeg sender en kopi af programmet. Her hedder tekstboksen som varenr står i bare tekst1, men det finder du jo nok ud af.
Avatar billede terry Ekspert
28. januar 2002 - 21:37 #15
hi! its on the way back!
dimple> No the SQL (VB) isnt different from ours, but as I suspected it where it is to be used! IE he has a form where he finds a "varenr" an dthen when he presses a button another form is to open and show ALL information on the specific varenr. So YES the VB is the same as ours but it still wouldnt help to get the data in th other form.
I have corrected the SQL to soemthing like
Set rst = dbs.OpenRecordset("SELECT antal FROM varer WHERE varenr = '" me.txtfield & "'" )
and move rst and the dbs objects to a module so that they are public an dteh other form can get at its data. It could be done inmany other ways but this just keeps it very simple.
Avatar billede whistler_whistler Nybegynder
29. januar 2002 - 14:25 #16
tak for hjælpen. Det funker perfekt
Avatar billede terry Ekspert
29. januar 2002 - 14:32 #17
Great, and thanks :o)
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