Avatar billede martens Guru
02. februar 2018 - 17:17 Der er 2 kommentarer og
2 løsninger

DoCmd.RunSQL problem med indsættelse af recordset

Jeg har trukket en del felter ud af en tabel, som jeg bruger til at sende mails til  medarbejdere, selve dele med at sende virker som det skal, men i mit LOOP, vil jeg gerne skrive medarbejdernummeret (MA) i en tabel, når mailen er sendt og VBA´en LOOP´er videre i løkken.
Min "MSGBOX-test" viser data, men vil jeg sætte rs.Fields("MA").Value ind i SQL-strengen fejler det...( med PLAIN tekst virker SQL-stregen som den skal...)

MsgBox rs.Fields("MA").Value  ( Virker som ønsket  viser MA-nummeret som ønsket)

DoCmd.RunSQL "INSERT INTO tbl_sent(MA) values ('Plain tekst virker')"

Her er mit problem :
DoCmd.RunSQL "INSERT INTO tbl_sent(MA) values ('rs.Fields("MA").Value')"    ( Virker IKKE ... )

Hvad gør jeg galt ?

på forhånd tak !

mvh martens
Avatar billede terry Ekspert
02. februar 2018 - 19:18 #1
Try:
DoCmd.RunSQL "INSERT INTO tbl_sent(MA) values ('" &  rs.Fields("MA").Value & "')"   

You need to get the contents of rs.Fields("MA").Value into the string, at the moment

rs.Fields("MA").Value is just a text within the string
Avatar billede bvirk Guru
02. februar 2018 - 19:38 #2
I sidste insert... - du beder om at få indsat rs.Fields("MA").Value' som bogstavelig streng - jeg tror det du vil er:
"INSERT INTO tbl_sent(MA) values ('" & rs.Fields("MA").Value & "')"

I øvrigt kan man godt opdatere på opdaterbare recordset direkte.
rs.edit
rs.Fields("MA")="test"
rs.update
Avatar billede martens Guru
02. februar 2018 - 22:15 #3
Tak til Terry og bvirk !

Det var lige det, der skulle til ...

- og så kom jeg lige på en anden idé, når I fik mig på rette vej..

Nemlig en DELETE-funktion, der tømmer tabellen, når der sendt en email til MA
Jeg har nemlig flere gange oplevet at systemet ( Outlook/Exchange ikke har kunnet følge med, når der bliver mailbombet.. så har jeg prøvet ikke at vide, hvor langt Access var kommet i forløbet, og skal til at undersøge hvilke mails, der ligger i sendt post samt udbakken.
Hvis jeg sletter netop indlæste record inden LOOP, har jeg ikke dette problem længere..

Så jeg endte op med dette :

DoCmd.RunSQL "DELETE tbl_list_with_KTP_INFO_and_Emails.MA FROM tbl_list_with_KTP_INFO_and_Emails WHERE ((tbl_list_with_KTP_INFO_and_Emails.MA)='" & rs.Fields("MA").Value & "')"

TAK for hjælpen til jer begge !

mvh martens
Avatar billede terry Ekspert
03. februar 2018 - 10:34 #4
Great you ended up with a working solution ;-)
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

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