Avatar billede tolveren Nybegynder
14. juli 2004 - 11:27 Der er 14 kommentarer og
1 løsning

Kopier felt fra formular til tabel2

Jeg har lavet relationer mellem 2 tabeller: Tabel_1 og Tabel_2. Derefter har jeg lavet en samle-forespørgsel og indsat kriterie på Nøglefelt_1. Når jeg indtaster et felt_1_nr, så før jeg en record hvor jeg vil opdatere. Hvis der ikke er relation over til tabel_2, så har jeg behov for at Nøglefeltet fra Tabel_1 kopieres over til Tabel_2's Nøglefelt.

Jeg har fundet nedenstående kode.
----------

Private Sub Felt1_AfterUpdate()
    DoCmd.SetWarnings False
    DoCmd.RunSQL "Insert Into [Tabel_2] ( [Felt1] ) Select " & Me!Felt1 & ", " & Me![Felt1_i_tabel_2]
    DoCmd.SetWarnings True
    Me![Tabel_2].Requery

End Sub
----------
Er der andre muligheder for kopiering af felt1 fra tabel_1 til felt1 i tabel_2. Felterne er ens, da der relateres på disse.
----------
Er der nogen som kan rette lidt i ovenstående, så det vil virke. Jeg er ikke så stærk til kode.
Avatar billede terry Ekspert
14. juli 2004 - 12:03 #1
"Insert Into [Tabel_2] ( [Felt1] ) VALUES('" & Me!Felt1 & "', '" & Me![Felt1_i_tabel_2] & "')"


If the fields are numbers then you must remove  the ''
Avatar billede terry Ekspert
14. juli 2004 - 12:05 #2
Oops! Thats wrong, you have two fields, or do you? Why do you just want to add a new record?

"Insert Into [Tabel_2] ( [Felt1], [Felt2] ) VALUES('" & Me!Felt1 & "', '" & Me![Felt1_i_tabel_2] & "')"
Avatar billede tolveren Nybegynder
14. juli 2004 - 12:06 #3
Ja, det er numbers.
"Insert Into [Tabel_2] ( [Felt1] ) VALUES(' & Me!Felt1 & ', ' & Me![Felt1_i_tabel_2] & ')"
Er den så korrekt ?
Avatar billede terry Ekspert
14. juli 2004 - 12:08 #4
I'm not quiet sure what you are trying to do!

Do you want to CREATE a new record in tabel_2? I have a feeling that if you gave some more information as to what you are tring to do then you may get a better solution to your problem§!
Avatar billede tolveren Nybegynder
14. juli 2004 - 12:08 #5
Det er kun  felt1 fra Tabe_1, som jeg ønsker kopieret til felt 1 i tabel_2
Avatar billede tolveren Nybegynder
14. juli 2004 - 12:16 #6
Jeg har 2 tabeller. Tabel 1 indeholder en masse data. Hver record har en nøgle.
Tabel 2 indeholder en nøglefelt (samme som tabel 1) samt et notatfelt.
Der er ikke lavet ret mange notater endnu. grunden til at jeg vil anvende 2 tabeller er at tabel 1 vil blive udskiftet med en opdateret tabel 1. For ikke at miste notaterne i notattabellen, så anvender jeg 2 tabeller som er relateret.
Når jeg opdaterer min forespørgsel(via formularen), så udsøger jeg et nøglenr og får data med i formularen inden jeg opdaterer. Tabel 2. Udsøgningen sker via Nøglefeltet i tabel 1 og jeg ønsker ikke at genindtaste samme nøgle i tabel 2 manuelt.
Avatar billede terry Ekspert
14. juli 2004 - 12:16 #7
"Insert Into [Tabel_2] ( [Felt1]) VALUES('" & Me!Felt1 & "')"
Avatar billede terry Ekspert
14. juli 2004 - 12:17 #8
and if its a numeric value then
"Insert Into [Tabel_2] ( [Felt1]) VALUES(" & Me!Felt1 & ")"
Avatar billede terry Ekspert
14. juli 2004 - 12:20 #9
If the fields from tabel_2 where in a SUB FORM which was on the form where you entered data into tabel_1, then the foreign key field would AUTOMATICALLY get filled out with the primary key from tabel_1
Avatar billede tolveren Nybegynder
14. juli 2004 - 12:35 #10
Ja, det har jeg prøvet. Måske skifter jeg kurs senere.
---
"Insert Into [Tabel_2] ( [Felt1 fra tabel 2]) VALUES(" & Me!Felt1_Tabel1 & ")"
Er der ikke for mange gåseøjne, når det er numeric ?
---
Der noget den ikke kan li'
Avatar billede tolveren Nybegynder
14. juli 2004 - 12:38 #11
Her er min kode på felt egenskaben:
---
Private Sub NR_JOIN5_AfterUpdate()

    DoCmd.SetWarnings False
    DoCmd.RunSQL "Insert Into [Notater] ([SE_nr]) VALUES(" & Me!NR_JOIN5 & ")"
    DoCmd.SetWarnings True
    Me![Notater].Requery

End Sub
Avatar billede terry Ekspert
14. juli 2004 - 14:37 #12
you have to make sure that the table and field names are correct!

Try this


---
Private Sub NR_JOIN5_AfterUpdate()

DIM sSQL as string

    sSQL = "Insert Into [Notater] ([SE_nr]) VALUES(" & Me!NR_JOIN5 & ")"

    DoCmd.SetWarnings False
    DoCmd.RunSQL sSQL
    DoCmd.SetWarnings True
    Me![Notater].Requery

End Sub



Place a breakpoint at docmd.runsql .... line.


Now run until you get here, then press Ctrl+G to open the debug window .

Then in the debug window write the following and see what you get.

?sSQL
Avatar billede terry Ekspert
14. juli 2004 - 15:07 #13
it may also be an idea to wait until the record is updated before you INSERT, if you decide NOT to add the record in tabel_1 then it would be silly to add it to tabel_2

You woould place the code in the forms AFTER UPDATE event
Avatar billede tolveren Nybegynder
14. juli 2004 - 15:51 #14
Se her Terry,
Jeg har sat koden på feltets afterupdate. Samtidig har jeg på Tabel 2  ændret egenskaben fra ingen dubletter til dubletter accepteres. Underligt at det er et problem !
-----
Private Sub NR_JOIN5_AfterUpdate()

    DoCmd.SetWarnings False
    DoCmd.RunSQL "Insert Into [Notater] ([SE_nr]) Select " & Me!NR_JOIN5 & ""
    DoCmd.SetWarnings True
    'Me![Notater].Requery

End Sub
----------
Tak for din indsats. Du får point.
Avatar billede terry Ekspert
14. juli 2004 - 18:18 #15
Sounds strange that you have to alter the key field to allow duplicates, but if its working then great.
And thanks !
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