Avatar billede maria.cand Nybegynder
04. november 2004 - 15:50 Der er 30 kommentarer og
1 løsning

Flyt data ved click hændelse

Jeg har en en tabel som indeholder følgende:

Navn1
Gade1
Postnummer1
By1
Navn2
Gade2
Postnummer2
By2

Fra min formular skal det være muligt når jeg trykke på en knappe at kopiere alle 1 ´erne ind i felterne med 2 ´erne -


Det vil sige kopiere Navn1 over i felt navn2 osv.

Grunden er at jeg har en betalingsadresse og og leveringsadresse - men ofte er den den samme og så skal man have mulighed for blot at trykke på en knappe så smider den betalingsadressen over i leveringsadrssen -
Avatar billede jensen363 Forsker
04. november 2004 - 15:56 #1
Lav en opdateringsforespørgsel som du indsætter som click hændelse

UPDATE Tabel SET Tabel.Navn2 = [Tabel]![Navn]
WHERE (((Tabel.Navn)=[Formularer]![Formular]![Navn1]));
Avatar billede maria.cand Nybegynder
04. november 2004 - 15:58 #2
Kan uddybe lidt;-)
Avatar billede maria.cand Nybegynder
04. november 2004 - 16:01 #3
UPDATE tblEmner SET tblEmner.Navn1 = "Navn2", tblEmner.Gade1 = "Gade2", tblEmner.Nr1 = "Nr2", tblEmner.Opgang1 = "Opgang2", tblEmner.Etage1 = "Etage2", tblEmner.Side1 = "Side2", tblEmner.Postnummer1 = "Postnummer2", tblEmner.By1 = "By2", tblEmner.Email1 = "Email2";
Avatar billede jensen363 Forsker
04. november 2004 - 16:04 #4
Præcis ...

Syntaxen WHERE (((Tabel.Navn)=[Formularer]![Formular]![Navn1]));

sikrer, at dt udelukkende er den aktuelle post du opdaterer

kan også skrives sådan :

WHERE (((Tabel.Navn)=Me![Navn1]));
Avatar billede maria.cand Nybegynder
04. november 2004 - 16:04 #5
dette var i hvertfald ikke rigtigt - hmmm
Avatar billede jensen363 Forsker
04. november 2004 - 16:05 #6
Ups ... :o)

WHERE (((Tabel.Navn1)=Me![Navn1]));
Avatar billede jensen363 Forsker
04. november 2004 - 16:08 #7
UPDATE tblEmner
SET tblEmner.Navn2 = tblEmner.Navn1,
tblEmner.Gade2 = tblEmner.Gade1,
....
tblEmner.Email2 = tblEmner.Email1
WHERE (((tblEmner.Navn1)=Me![Navn1]));
Avatar billede maria.cand Nybegynder
04. november 2004 - 16:10 #8
Det går slet ikke for mig det her -

Private Sub Kommandoknap347_Click()
UPDATE tblEmner where
tblEmner.Navn1 = me.Navn2, tblEmner.Gade1 = me.Gade2, tblEmner.Nr1 = me.Nr2, tblEmner.Opgang1 = "Opgang2", tblEmner.Etage1 = me.Etage2, tblEmner.Side1 = me.Side2", tblEmner.Postnummer1 = me.Postnummer2, tblEmner.By1 = me.By2, tblEmner.Email1 = me.Email2;
End Sub
Avatar billede jensen363 Forsker
04. november 2004 - 16:15 #9
Ok ... got it ...

Du skal lige indføje

DoCmd.Setwarnings False
    DoCmd.RunSQL "UPDATE tblEmner SET tblEmner.Navn2 = tblEmner.Navn1, " & _
    "tblEmner.Gade2 = tblEmner.Gade1, " & _
    ".... " & _
    "tblEmner.Email2 = tblEmner.Email1 " & _
    "WHERE (((tblEmner.Navn1)=Me![Navn1]));"
DoCmd.Setwarnings True

Kender du SQL systematikken ?
Avatar billede maria.cand Nybegynder
04. november 2004 - 16:17 #10
nej ikke helt - derfor er det lidt svært for mig
Avatar billede jensen363 Forsker
04. november 2004 - 16:18 #11
Alternativt kan du oprettet hele denne i en forespørgsel :

UPDATE tblEmner
SET tblEmner.Navn2 = tblEmner.Navn1,
tblEmner.Gade2 = tblEmner.Gade1,
....
tblEmner.Email2 = tblEmner.Email1
WHERE (((tblEmner.Navn1)=Me![Navn1]));

og så benytte :

DoCmd.Setwarnings False
    DoCmd.OpenQyery "queryNavn"
DoCmd.Setwarnings True
Avatar billede maria.cand Nybegynder
04. november 2004 - 16:21 #12
Det der forvirre mig er WHERE (((tblEmner.Navn1)=Me![Navn1]));


Dette skal jeg vel skrive ved alle felter ik?
Avatar billede maria.cand Nybegynder
04. november 2004 - 16:21 #13
Hvis jeg ikke kan lave det må de jo bare indtaste det hele igen..
Avatar billede maria.cand Nybegynder
04. november 2004 - 16:22 #14
Tror bare jeg laver det i Vb kode ved at sætte de enkelte = hinanden
Avatar billede jensen363 Forsker
04. november 2004 - 16:24 #15
Det som er meningen er, at

WHERE (((tblEmner.Navn1)=Me![Navn1]))

sikre, at det kun er denne ene post som du foretager kopieringen for, hvis du undlod denne, ville kopieringen foretages for samtlige poster i tabellen, hvilket vel ikke er meningen. Det forudsætter naturligvis af Navn1 er en unik værdi, ellers kunne du benytte et andet felt
Avatar billede jensen363 Forsker
04. november 2004 - 16:26 #16
Hvis jeg skulle komme med et forslag, ville jeg markere i tabellen, at Leveringsadresse er den samme som betalingsadressen ( Ja/Nej )
Avatar billede maria.cand Nybegynder
04. november 2004 - 16:28 #17
Okay Emneid er det unikke - Ja hvis jeg kunne gøre det med et ja/nej og den så flytter det hele til navn2, gade 2 osv - så ville det være kanon
Avatar billede jensen363 Forsker
04. november 2004 - 16:32 #18
Det var ikke det, som jeg mente med at markere ja/nej. Meningen var, at du efterfølgende kunne udvælge data ved hjælp af ja/nej markeringen

If Mark = "Ja" Then
    Leveringsadresse = Navn1
Else
    Leveringsadresse = Navn2
End If
Avatar billede maria.cand Nybegynder
04. november 2004 - 16:33 #19
Okai den holder ikke - da vi skal rapportere begge adresser hver gang -
Avatar billede maria.cand Nybegynder
04. november 2004 - 16:33 #20
Jeg leger lige lidt med det
Avatar billede jensen363 Forsker
04. november 2004 - 16:36 #21
Det kan du også ... men du skal vist arbejde lidt mere med Access inden da :o)

Din forespørgsel skal se således ud :

UPDATE tblEmner
SET tblEmner.Navn2 = [tblEmner]![Navn1],
tblEmner.Gade2 = [tblEmner]![Gade1],
tblEmner.Nr2 = [tblEmner]![Nr1],
tblEmner.Opgang2 = [tblEmner]![Opgang1],
tblEmner.Etage2 = [tblEmner]![Etage1],
tblEmner.Side2 = [tblEmner]![Side1],
tblEmner.Postnr2 = [tblEmner]![Postnr1],
tblEmner.By2 = [tblEmner]![By1],
tblEmner.Email2 = [tblEmner]![Email1]
WHERE (((tblEmner.Emneid)=[Formularer]![Formular]![Emneid]));

Navngiv så forespørgslen, og benyt denne i click hændelsen

DoCmd.Setwarnings False
    DoCmd.OpenQyery "Forespørgselsnavn"
DoCmd.Setwarnings True
Avatar billede jensen363 Forsker
04. november 2004 - 16:38 #22
Stavefejl :

DoCmd.OpenQuery "Forespørgselsnavn"
Avatar billede maria.cand Nybegynder
04. november 2004 - 16:44 #23
WHERE (((tblEmner.Emneid)=[Formularer]![Formular]![Emneid]));


Formularer!Formular - Er det bare navnet på min formlar??
Avatar billede jensen363 Forsker
04. november 2004 - 16:46 #24
Korrekt ... :o) [Formularer]![DitFormularNavn]![Emneid] ...
Avatar billede maria.cand Nybegynder
04. november 2004 - 16:47 #25
UPDATE tblEmner SET tblEmner.Navn2 = [tblEmner]![Navn1], tblEmner.Gade2 = [tblEmner]![Gade1], tblEmner.Nr2 = [tblEmner]![Nr1], tblEmner.Opgang2 = [tblEmner]![Opgang1], tblEmner.Etage2 = [tblEmner]![Etage1], tblEmner.Side2 = [tblEmner]![Side1], tblEmner.Postnummer2 = [tblEmner]![Postnummer1], tblEmner.By2 = [tblEmner]![By1], tblEmner.Email2 = [tblEmner]![Email1]
WHERE (((tblEmner.Emneid)=Me![Emneid]));
Avatar billede jensen363 Forsker
04. november 2004 - 16:49 #26
Er ikke helt sikker, men mener at du skal bruge hele syntaxen, når du benytter den i en forespørgsel, altså :

[Formularer]![DitFormularNavn]![Emneid]
Avatar billede maria.cand Nybegynder
04. november 2004 - 16:54 #27
Det virker - men det er som om jeg skal ud og ind igen før det virker - den kommer ikke bare automatisk
Avatar billede jensen363 Forsker
04. november 2004 - 16:56 #28
Afslut med
   
Me!Refresh

det skulle opdatere den aktuelle visning
Avatar billede maria.cand Nybegynder
04. november 2004 - 17:00 #29
Takker
Avatar billede maria.cand Nybegynder
04. november 2004 - 17:01 #30
Den gør det godt nok ikke med det samme jeg skal trykke to gange på knappen - men så virker det også og det er ellers en almindelig Click event
Avatar billede jensen363 Forsker
04. november 2004 - 17:01 #31
Velbekommen
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