Avatar billede vb-wanna-b Nybegynder
04. januar 2004 - 18:04 Der er 12 kommentarer og
1 løsning

Insert Into og tilføj værdi

kam man lave en DoCmd.RunSQL (Insert into.....)
hvor jeg indsætter en record fra en temp tabel til en anden hvor jeg samtidig tildelte en værdi til den record der indsættes.

jeg har to tabeller..
en "virkelig" (tabel1) og en temp (tabel2)
temp tabellen indeholder et Info felt der har en standard tekst.
I en formular indtaster jeg nye ID´er.
Hvis ID ikke ikke findes i tabel1 skal den record fra tabel2 indsættes og record´en skal have ID værdien "lagt ind" i tabel2.ID

kan man det...and mostly....hvordan...
Avatar billede mugs Novice
04. januar 2004 - 18:11 #1
Avatar billede vb-wanna-b Nybegynder
04. januar 2004 - 18:28 #2
Jeg kan ikke ud fra de se en løsning.
der skal oprettes en ny record i tabel1 indeholdene én værdi fra tabel2 samt en værdi fra det sql træk der er lavet fra en anden tabel.
rs1 indeholder den eller de værdier der skal med.

men hvis jeg laver en insert skal jeg da "fortælle" hvilket felt værdien '"&rs1&'" skal ind i...
Avatar billede terry Ekspert
04. januar 2004 - 19:56 #3
INSERT INTO table1 (field1, field2) SELECT 'YourValue', field2 FROM table2
Avatar billede vb-wanna-b Nybegynder
04. januar 2004 - 21:11 #4
I get a key violation..
this is what I have...

Dim strFldName1 As String
Dim strfldName2 As String
Dim i As Integer

Dim rs1 As ADODB.Recordset
Dim rs2 As ADODB.Recordset

  Set rs1 = New ADODB.Recordset
  Set rs2 = New ADODB.Recordset

rs1.Open "Select SerieNr from IT_tilmeld", CurrentProject.Connection, _
            adOpenKeyset, adLockOptimistic
rs2.Open "Select DISTINCT SerieNr from support", CurrentProject.Connection, _
            adOpenKeyset, adLockOptimistic
    For i = 0 To rs1.Fields.Count - 1
    strFldName1 = rs1.Fields(i).Value
    strfldName2 = rs2.Fields(i).Value
      If strFldName1 = strfldName2 Then
            MsgBox "match"
            'MsgBox rs1
            'MsgBox strFldName1
            'MsgBox strfldName2
      Else
            MsgBox (strFldName1)
            DoCmd.RunSQL "INSERT INTO support (SerieNr, Historik) SELECT  'strFldName1', Historik FROM DummySupport"
            'DoCmd.RunSQL "INSERT INTO support Select Historik from DummySupport VALUES,('"&rs1&"')"
            'MsgBox "no match"
            'MsgBox strFldName1
            'MsgBox strfldName2
      End If
    Next i
   
rs1.Close
rs2.Close

the idea is that I match each record from IT_tilmeld with support. If there is a record in IT_tilmeld, that has a SerieNr that is not represented in support. It takes that SerieNr plus the value in a "dummytable" with a default infoField and add´s that to support, and then cycle to next record that is NOT represented in support
Avatar billede mugs Novice
04. januar 2004 - 21:14 #5
If strFldName1 = strfldName2 Then
MsgBox "match"

Efter denne kører koden jo videre og forsøger at oprette posten. Prøv at indsætte en Exit Sub:

If strFldName1 = strfldName2 Then
MsgBox "match"
Exit Sub
Avatar billede vb-wanna-b Nybegynder
04. januar 2004 - 21:22 #6
der kan jo også være flere poster der ikke matcher så den skal jo helst cykle gennem alle poster der ikke står i support
Avatar billede mugs Novice
04. januar 2004 - 21:29 #7
Så kan du evt. oprette en fejlhåndtering der går til næste post:

On error GoTo Errorhandler
din kode
errorhandler:
If Err.number = 123 Then
Resume Next
End If
Avatar billede vb-wanna-b Nybegynder
04. januar 2004 - 22:04 #8
jeg tror jeg er galt på den...
det må kunne gøres med et SQL statement....
Avatar billede terry Ekspert
05. januar 2004 - 10:52 #9
I'm just guessing but I thingk your problem is that you are trying to insert a string and not the contents of a variable..

DoCmd.RunSQL "INSERT INTO support (SerieNr, Historik) SELECT  " & 'strFldName1' & ", Historik FROM DummySupport"
Avatar billede terry Ekspert
05. januar 2004 - 10:53 #10
Oops!
DoCmd.RunSQL "INSERT INTO support (SerieNr, Historik) SELECT  " & strFldName1 & ", Historik FROM DummySupport"
Avatar billede terry Ekspert
05. januar 2004 - 10:54 #11
Thats still not correct

DoCmd.RunSQL "INSERT INTO support (SerieNr, Historik) SELECT  '" & strFldName1 & "', Historik FROM DummySupport"
Avatar billede vb-wanna-b Nybegynder
05. januar 2004 - 11:02 #12
hey Terry...it works..it inserts well one record...this meens my loop aint working...Im going to make another ? on that...hope u could take a look at it too
Avatar billede terry Ekspert
05. januar 2004 - 11:12 #13
Thanks, I'll take a lokk at your new question if I have time :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
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