Avatar billede petersen7913 Forsker
29. februar 2016 - 11:31 Der er 15 kommentarer og
1 løsning

CurrentRecord - ikke kolonnen men rækken

Jeg er ved at lave en combobox så jeg kan hente 5-6 værdier i en tabel og vise dem i en formular dvs. en udviddet combobox ;)

Problem 1:

Jeg har lavet en After-Update for at kunne lægge opslagværdierne over i felterne på formen. Men jeg får ikke værdien over i det ene felt i CurrentRecord, men over i alle felter i kolonnen:

[Form_FrmSub LogsheetItem].txtDescription = [Form_FrmSub LogsheetItem].cboMatCertNo.Column(2)

txtDescription er det felt, hvor jeg gerne vil vise værdien i Column(2) men hele kolonnen txtDescription får Column(2) værdien.

Så søgte jeg på noget med CurrentRecord:

Me!txtDescription = blabla.Column(2) viser også samme tekst i hele kolonnen.

Me.CurrentRecord kan jeg ikke komme videre med ... forslag???

Men hvordan får jeg fat på lige netop hvert enkelt felt på lige den række jeg konkret står på når jeg vælger i min combobox?

Problem 2:
Hvor skal jeg lægge noget kode, så de her værdier også vises når jeg åbner formen på Form_Load?
Avatar billede petersen7913 Forsker
29. februar 2016 - 12:08 #1
Overvejelse - kan jeg bygge min form på en forespørgsel i stedet og så lave insert og update i VBA? Læs 'kan' som 'er det en bedre løsning?' ;)
Avatar billede terry Ekspert
29. februar 2016 - 13:29 #2
I would have thought that Me!txtDescription = blabla.Column(2)

would work, but maybe I'm missing something.

I'm assuming that the combo is a control on all rows, and when you select a record from the combo on the specific row you want to put the value from one of the columns in the combo, into a field in the same row (record)?

If that's correct then you should not need to use CurreentRecord, because its the CurrentRecord your working with.

So Me.txtDescription = Me.cboMatCertNo.Column(2) should work.
Avatar billede terry Ekspert
29. februar 2016 - 13:31 #3
Overvejelse - kan jeg bygge min form på en forespørgsel i stedet og så lave insert og update i VBA? Læs 'kan' som 'er det en bedre løsning?' ;)

Its shouldn't be necessary to use SQL insert/update, but again I might be missing something
Avatar billede terry Ekspert
29. februar 2016 - 13:36 #4
Overvejelse - kan jeg bygge min form på en forespørgsel ...


Not sure how your dB is built (designed), but I'm assuming that the columns in the combo are coming from a different table to that in the form. You could try making a query which shows the column from the combo, on the form rather than in the combo. But this might introduce another problem. Your data will not be updatable in the form! But you could try it.
Avatar billede petersen7913 Forsker
29. februar 2016 - 14:14 #5
Nu har jeg lavet en sluk-tænd på PCen og komprimer og reparer på databasen. Bagefter har jeg prøvet dir 'should work' ;) af og jeg får stadig sat værdien i hele kolonnen :(

Lidt tanker -----

En meget almindelig konstruktion: jeg har et ID felt, vælger ID, NAVN i mit opslag og NAVN vises for brugeren. Men reelt er det jo ID jeg læser ind og så er der noget kode gemt et sted, som iser NAVN i stedet.

I mit eksempel læser jeg flere data ind, hentet via ID men jeg vil vise dem i felter, som jeg har sat til at være ubundne. Kan det være det, der giver problemer??????

Hvis du kan linke til et eksempel med at læse flere værdier ind må du meget gerne.

Og som sædvanligt - tak for din hjælp :)
Avatar billede terry Ekspert
29. februar 2016 - 14:32 #6
would it be possible for you to send an example of the dB?

Not easy to fully understand whats going on :-(

"Hvis du kan linke til et eksempel med at læse flere værdier ind må du meget gerne." ??
Avatar billede petersen7913 Forsker
29. februar 2016 - 15:12 #7
Jeg kan prøve at lave et lille eksempel, men det er ved at være rimeligt komplekst - det vender jeg måske tilbage til ;)

Eksempler - alle de eksempler jeg kan finde viser hvordan man viser NAVN men bruger ID (som jeg skrev om) og så fandt jeg 1! eksempel på at man trækker flere data i samme comboboks. Det var så den jeg efterlignede.... Samme kode som du også foreslog. Så jeg tænkte, at du måske havde et link til en demoDB jeg kunne kigge på.

Noget helt andet, jeg gravede videre og kiggede på Combobox.BoundColumn property. Der står at den skal være '1 eller større' men jeg kan ikke finde nogle eksempler hvor BoundColumn er sat til mere end 1. Er det noget du ved noget om? Jeg tænker jo straks på at hvis jeg så kan sætte BoundColumn til de 6-7 stykker jeg har bruger for kan jeg komme videre he he. Men jeg kan ikke finde eksempler.
Avatar billede terry Ekspert
29. februar 2016 - 15:34 #8
Bound column is the column which holds the field which when selected will be written to the table in the form.

This is normally the primary key (ID) of the table which you are taking the data from in the combo.

This is the same as te relationship between wo tables.



The easiest way to make a combo in a form is to use the lookup wizard when creating your tables.

hen you choose data type you will find Lookup wizard as a type. By following the guide you get the chance to select which fields you want in the combo, and also if the ID column is to be visible or not.
Avatar billede terry Ekspert
29. februar 2016 - 15:35 #9
Then when you create a from the combo will automatically be made for you.
Avatar billede terry Ekspert
29. februar 2016 - 15:38 #10
Avatar billede petersen7913 Forsker
01. marts 2016 - 09:00 #11
Jeg tror vi taler forbi hinanden.

Når jeg opretter en tabel har jeg et ID, der linker over til den tabel jeg ønsker at slå op i.

I opslagstabellen har jeg det tilsvarende ID og så har jeg f.eks. 2 andre felter, som skal  trækkes med over ved opslag.

Normalt! vil jeg lave et opslag på f.eks. ID, navn i en combobox.
I Datafanen har jeg 'select ID, navn from tabel', jeg sætter bundet kolonne = 1.
I Format fanebladet har jeg AntalKolionner = 2 og Kolonnebredde = 0;2 fordi jeg så ser navnet men henter ID over i feltet.

Det fungerer fint :)

Jeg kan også vælge at få vist flere felter i min combobox og så længe jeg stadig har 'bundet kolonne' = 1 kan jeg ændre på AntalKOlonner, så det passer til de data jeg vælger i min select.

Mit spørgsmål går på hvad der sker når bundet kolonne sættes til mere! end 1. Jeg får en fejl ;) Men jeg kan heller ikke 'se' hvor de ekstra værdier i min select hentes ind?

I videoen kan jeg se et sted, at BundetKolonne = 2 men jeg kan ikke se hvad der så sker.
Avatar billede petersen7913 Forsker
01. marts 2016 - 09:22 #12
Terry - Jeg har nu testet lidt med det eksempel du gav mig til at søge i data. Det fungerer fint, både med at vises data rigtigt, fordi det bygger på en forespørgsel, og med at jeg kan gå ind og ændre i et statusfelt.

Så med lidt nørkleri tror jeg at jeg har løsningen på dette problem :)

Vil du lægge et svar så jeg kan lukke?
Avatar billede terry Ekspert
01. marts 2016 - 09:24 #13
"Jeg tror vi taler forbi hinanden." :-) Yes that might be the case.

Here's an explanation on BoundColumn

https://msdn.microsoft.com/en-us/library/office/ff822489.aspx

I dont seem to remember ever using 0 (ListIndex) and normally, if the first field in your select is the ID, then the BoundColumn would be 1.

Lets say you have the ID and NAVN in the combo. ID is a numerical value and NAVN is text. When you choose a row in the combo the ID which is numerical, is placed in the table on the form in the related field which will also be a numerical field. This makes the relationship between the two tables.
IF you changed BoundColumn to 2 you would theoretically be trying to put a text value (NAVN) in a numerical field, which obviously doesn't go.

Now if you changed your select to NAVN then ID then of course your bound column would be 2.

So, I dont see the point in changing BoundColumnn IF ID is the first column in the combo.
Avatar billede terry Ekspert
01. marts 2016 - 10:06 #14
OK.
Didn't you also get this to work?

Me!txtDescription = blabla.Column(2)
Avatar billede terry Ekspert
01. marts 2016 - 10:10 #15
In the example the combo's are on the header and are unbound, so not sure how they can help ....
Avatar billede petersen7913 Forsker
01. marts 2016 - 12:00 #16
>Didn't you also get this to work?

>Me!txtDescription = blabla.Column(2)

Nej jeg fik samme fejl, at hele kolonnen txtDescription får værdien fra kolonnen. Og ... hvis jeg manuelt sletter i feltet slettes hele kolonnen, hvis jeg manuelt skriver en værdi får ta daaa hele kolonne værdien.

>In the example the combo's are on the header and are unbound, so not sure how they can help ....

Nej, det var noget jeg lige da troede kunne bruges men ikke da jeg gik i gang for alvor.

Jeg er tilbage i at bruge en Query til formen og så kode mig ud af at indsætte nye rækker osv. Jeg får noget der fungerer og så er der nogle skønhedsfejl som brugerne bare må lære at leve med ;)
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