Avatar billede sansalvador Nybegynder
26. juli 2003 - 12:52 Der er 18 kommentarer og
1 løsning

Simpel SELECT udskrift i unboundfelt

Jeg har denne:

SELECT Firmanavn from Kunder where KundeID =  Forms!Ordrer!KundeID

Virker keine ... Hvordan får jeg den til at udskrive firmanavnet, på den pågældende kundeID ?

Jeg har sat denne select ind i Control Source.. Er dette forkert?
Avatar billede mugs Novice
26. juli 2003 - 19:11 #1
Indsæt nedenstående i en kommandoknap's OnClick event. Det er et krav, at kommandoknappen er placeret i en formular, idet du refererer til Formularens felt KundeID (Me.KundeID). Det er ligeledes et krav, at felete KundeID er i både formularen og rapporten:

DoCmd.OpenReport "RAPPORTNAVN", acViewPreview, , "KundeID = " & Me.Kundeid & "", acNormal
Avatar billede mugs Novice
26. juli 2003 - 19:13 #2
Ovenstpende gælder for et numerisk felt. Er feltet KundeID et alfanumerisk felt (mod forventning), skal koden se således ud:

DoCmd.OpenReport "RAPPORTNAVN", acViewPreview, , "KubdeID = '" & Me.KundeID & "'", acNormal
Avatar billede sansalvador Nybegynder
26. juli 2003 - 19:26 #3
Jeg skal nu bruge den til en formular, hvis dette skulle være i tvivl ...

"RAPPORTNAVN" siger mig ikke noget. Har ikke genereret nogle rapporter.
Avatar billede mugs Novice
26. juli 2003 - 19:31 #4
Naturligvis var jeg ikke i tvivl om, at du ville udskrive, det skriver du jo i spørgsmålet.
Avatar billede mugs Novice
26. juli 2003 - 19:37 #5
Hvis du vil åbne en anden formular der indeholder firmanavnet, kan du i dennes postkilde (Forespørgsel), indsætte flg som et kriterie i feltet KundeID:

= [Forms]![FORMULARNAVN]![KundeID]

KundeID skal så være i begge formularer.
Avatar billede mugs Novice
26. juli 2003 - 19:39 #6
Eller lidt mere elegant:

DoCmd.OpenForm "FORMULARNAVN", , ,"KundeID = " & Me.KundeID  & ""
Avatar billede sansalvador Nybegynder
26. juli 2003 - 19:44 #7
Wow ... hold on :) Jeg tror ikke lige vi har fundet nødden endnu, vi skal knække... =)

Jeg har en en ordretabel og en kundetabel... I ordretabellen findes der et kundenummer. Jeg vil så i formen, hvor man ser ordrer, have et firmanavn også. Dvs jeg skal have firmanavnet udskrevet fra kundetabellen udfra kundenummeret i ordreformen ...

Måske har du givet mig svaret, men jeg forstår ikke helt...
Avatar billede mugs Novice
26. juli 2003 - 20:00 #8
Hvis din db er normaliseret og du har de korrekte relationer, så SKAL firmanavnet komme af sig selv.

Kan du sende db til:

mugs@mail.dk

Så vil jeg se på det lidt senere, skal lige ned og redde mine agurker i drivhuset.
Avatar billede sansalvador Nybegynder
26. juli 2003 - 20:12 #9
Jeg har lige sendt lidt til dig :)
Avatar billede mugs Novice
26. juli 2003 - 20:36 #10
db returneres med flg kode indsat:

Me.Kundenavn = DLookup("[Firmanavn]", "Kunder", "[KundeID]= [Forms]![Ordrer]![KundeID]")
Avatar billede sansalvador Nybegynder
26. juli 2003 - 20:39 #11
Hmm .. har ikke fået nogen mail ...? Er Internettet gået ned ? =)
Avatar billede mugs Novice
26. juli 2003 - 20:41 #12
Skulle lige have skrevet nogle kommentarer - Hvad nu?
Avatar billede sansalvador Nybegynder
26. juli 2003 - 20:44 #13
Perfekt! Takker.... Jeg savnede virkelig en funktion som DLookup ... MS er virkelig kryptisk i deres SQL-forespørgseler .. Men tak da :)

Ellers nogle kommentarer til noget du så mystisk ..?
Avatar billede mugs Novice
26. juli 2003 - 20:57 #14
Tak for point.

Din formular får data fra en tabel.Sørg for at lave forespørgsler og lad din formular få data derfra. Prøv at åbne db i databasevinduet > Fanen Forespørgslen > Ny.

Dobbeltklik på tabellerne Kunder og Ordrer, så bliver de trukket ind i forespørgslens Designgitter.
Dobbeltklik på fletet KundeID i tabellen Ordrer og feltet trækkes ned i gitteret, derefter dobbeltklikker du på feltet Firmanavn i tabellen Kunder.

Kør forespørgslen ved at klikke på det røde udråbstegn på menulinien. Prøv derefter at ændre et KundeID til noget andet. så vidt jeg husker oprettede jeg mig selv som firmanavn med KundeID 2.

Hvis du havde gjort ovenstående fra starten, var du ikke havnet i dette problem.
Avatar billede mugs Novice
26. juli 2003 - 20:58 #15
Ps.: Min kode er ikke SQL med VBA
Avatar billede sansalvador Nybegynder
26. juli 2003 - 21:13 #16
Ah ja .. Hvor er jeg dum .. Det første du siger, vidste jeg faktisk godt, men min hjerne er lidt rodet disse dage ... Men tak ! =)

Er DLookup og Dsum osv ikke opfundet af MS ?
Avatar billede mugs Novice
26. juli 2003 - 21:18 #17
Jeg ved ikke hvem der har opfundet disse funktioner. Jeg antager, at de mere eller mindre findes i alle databaseprogrammer. Måske hedder de noget andet, men jeg er næsten sikker på, at resultatet er det samme. Jeg mener også, at du kan indsætte DLookUp som et udtryk i en forespørgsel, men jeg har ikke syntaksen ved hånden.

Men hvem kan i disse dage siges at have krav på at opfinde en funktion? Her på eksperten kan du jo finde tusindvis af koder, der er skrevet af en bruger. Ofte er det jo brug af forskellige koder skrevet af andre, men til lejligheden sammensat på en anden måde.

Så hvem opfandt den dybe tallerken? Kineseren eller ham der først spiste suppe?
Avatar billede sansalvador Nybegynder
26. juli 2003 - 21:33 #18
Hmm ja... Jeg synes bare den syntaks i disse funktioner (som desuden også går meget igen i Excel)- med Dfunktion(felt,tabel,kriterie)- minder meget om en simplificeret if sætning eller select sætning... Og måske forbinder jeg bare simplificering (ikke til det bedre altid) med Microsofts indflydelse på programmering :)
Avatar billede mugs Novice
26. juli 2003 - 21:36 #19
I betragtning af Microsofts manglende konsekvens i programmering i de forskellige programmer, mener jeg afgjort at MS har for stor indflydelse. Men så længe kunderne køber varen i den udstrækning som vi gør, bliver MS indflydelse ikke mindre.
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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