Avatar billede dl Nybegynder
23. maj 2006 - 19:30 Der er 14 kommentarer og
1 løsning

SQL INSERT i Access

Jeg har en tabel: PersonKartotek, med Navn, postnr
'jeg har en form, med en knap på.
Jeg skal, når jeg trykker på knappen, køre denne SL sætning

INSERT INTO PersonKartotek VALUES('DL',4000);

Hvordan gøres det?

//dl
Avatar billede mugs Novice
23. maj 2006 - 19:41 #1
Ikke afprøvet:

DoCmd.RunSQL "INSERT INTO Personkartotek ( DL )SELECT 4000"
Avatar billede terry Ekspert
23. maj 2006 - 19:46 #2
DoCmd.RunSQL "INSERT INTO Personkartotek (Field list) VALUES (Values list)
Avatar billede terry Ekspert
23. maj 2006 - 19:47 #3
Example

DoCmd.RunSQL "INSERT INTO PersonKartotek (fldText, fldNumber) VALUES('DL',4000)"
Avatar billede terry Ekspert
23. maj 2006 - 19:47 #4
answer
Avatar billede dl Nybegynder
23. maj 2006 - 20:06 #5
terry this works.
mugs, og tak også til dig
Avatar billede dl Nybegynder
23. maj 2006 - 20:06 #6
terry got point.
Avatar billede terry Ekspert
23. maj 2006 - 20:11 #7
tak, og god aften
Avatar billede dl Nybegynder
23. maj 2006 - 21:11 #8
ved godt, dette er lukket men:
Dim personId As Long
Dim stk As Long
Dim udbetalt As Long

personId = Kombinationsboks4.Value
stk = Me.Tekst7.Value
udbetalt = Me.Tekst7.Value * 30

DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO ialt (personId, stk, udbetalt) VALUES (personId, stk, udbetalt)"

hvorfor spørger den mig om parameter idet jeg køre den.

personId, stk, udbetalt skulle  gerne alle være tal ???

//dl
Avatar billede mugs Novice
23. maj 2006 - 21:15 #9
Du gør det mere bøvlet end det er nødvendigt:

stk = Me.Tekst7.Value
udbetalt = Me.Tekst7.Value * 30

Kan vel blot erstattes med:

udbetalt = Me.Tekst7 * 30

Hvodfor har du stk med? Men om det ændrer det med parameterværdien ved jeg ikke.
Avatar billede dl Nybegynder
23. maj 2006 - 21:20 #10
kan bare godt li at have det hele med, da jeg ikke helt ved hvad der forgå i Access.

Private Sub Kommandoknap6_Click()

Dim temp_personId As Long
Dim temp_stk As Long
Dim temp_udbetalt As Long

temp_personId = Kombinationsboks4.Value
temp_stk = Me.Tekst7.Value
temp_udbetalt = Me.Tekst7.Value * 30

DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO ialt (personId, stk, udbetalt) VALUES (temp_personId, temp_stk, temp_udbetalt)"
End Sub



den kommer stadig med med en dialogbox og spørger efter værdier på alle parameter.
og der er værdier ved, kan jeg se hvis jeg debuder den
Avatar billede mugs Novice
23. maj 2006 - 21:23 #11
Jeg tror der er nogle felter den ikke genkender. Husk forøvrigt ALTID at sætte warnings til true i slutningen af koden, ellers frobliver Warnings frakoblede i hele applikationen hvilket kan give en katastrofal fejl da du ikke bliver promptet for evt. fejl.
Avatar billede dl Nybegynder
23. maj 2006 - 21:26 #12
k, jeg har sat den til true igen :)

men der er på ingen tidsounkt, hvor MS ikke genkender nogle af mine felter .
Avatar billede terry Ekspert
24. maj 2006 - 09:07 #13
The reason for the problem is that the variables neet to be converted to vakues in the actual SQL. Ast is now the SQL only hold the variable names as plain text.


DoCmd.RunSQL "INSERT INTO ialt (personId, stk, udbetalt) VALUES (temp_personId, temp_stk, temp_udbetalt)"

Should be something like this

DoCmd.RunSQL "INSERT INTO ialt (personId, stk, udbetalt) VALUES (" & temp_personId & ", " & temp_stk & ", " &  temp_udbetalt & ")"

and if any of the vakues are text then you also need to put them in ''
Avatar billede terry Ekspert
24. maj 2006 - 09:07 #14
vakues = values
Avatar billede dl Nybegynder
24. maj 2006 - 17:05 #15
yeah, did also find out and the nighttime :)
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