Avatar billede schoesler Nybegynder
03. juni 2003 - 11:08 Der er 9 kommentarer og
2 løsninger

Tilføje en ny record til en tabel via kode

Har en tabel kørende på flere computere som jeg ikke har umiddelbar adgang til, med mindre jeg sender en opdatering via e-mail. Jeg vil gerne beholde den eksisterende data og blot tilføje en ny record til tabellen
03. juni 2003 - 11:15 #1
Docmm.setwarnings false
docmd.runsql "Insert Into [DinTabel] ( ID, Felt2, felt3 ) Values (1000, 'la bla' 'ej')"
docmd.Setwarnings true
Avatar billede schoesler Nybegynder
03. juni 2003 - 11:40 #2
'thomasjepsen' Ja den virker i same db, hvad nu hvis koden ligger i tilsende opdatering (opdaterings db) og ændringerne skal lave i en anden db (back-end)
Avatar billede henrik13 Nybegynder
03. juni 2003 - 11:44 #3
Dim dbs As Database
Set dbs = OpenDatabase("Db14.mdb")
'skal bruge en full path, hvis de ikke ligger i samme drev eller dir.
Docmm.setwarnings false
docmd.runsql "Insert Into [DinTabel] ( ID, Felt2, felt3 ) Values (1000, 'la bla' 'ej')"
docmd.Setwarnings true
Avatar billede henrik13 Nybegynder
03. juni 2003 - 11:45 #4
Db14 skal udskiftes med navnet på din database.  :o)
Avatar billede schoesler Nybegynder
03. juni 2003 - 11:56 #5
'thomasjepsen' og 'henrik13' får fejl på følgende kode "compile error" og "user difened type not defined"?

Private Sub Command1_Click()

Dim dbs As Database
Set dbs = OpenDatabase("c:\company shared folders\shiptoolDATA.mdb")

DoCmd.SetWarnings False
DoCmd.RunSQL "Insert Into [tblUserData] ( fldUserID, fldUserName, fldUserPass ) Values ('Jan', 'la bla', 'ej')"
DoCmd.SetWarnings True
MsgBox "Opdateret", vbInformation, "Add user"


End Sub
03. juni 2003 - 12:34 #6
for at bruge Henriks kode, skal du have en reference til Microsoft DAO 3.x Object Library.
(Tools->References i VBA-editoren)
Avatar billede schoesler Nybegynder
03. juni 2003 - 12:59 #7
'thomasjepsem' Fik fejlmeldingen væk og koden køres, men der kommer ingen record i tabellen [tblUserData], hvad mon det kan være
03. juni 2003 - 13:08 #8
Ah, det er først nu, at jeg ser at Henriks kode slet ikke duer. Ideen er god nok, men med denne kode er det ikke i den eksterne database, at posten bliver tilføjet.
Prøv denne:

Private Sub Command1_Click()

Dim dbs As Database
Set dbs = OpenDatabase("c:\company shared folders\shiptoolDATA.mdb")

dbs.execute "Insert Into [tblUserData] ( fldUserID, fldUserName, fldUserPass ) Select 'Jan', 'la bla', 'ej'"

MsgBox dbs.recordsaffected & " poster blev tilføjet", vbInformation, "Add user"
End Sub
Avatar billede schoesler Nybegynder
03. juni 2003 - 13:18 #9
Tak til 'thomasjepsen' og 'henrik13' det funkede
JAN
Avatar billede schoesler Nybegynder
03. juni 2003 - 16:02 #10
'thomasjepsen' Hvis jeg nu skal have slettet en record før oprettese af ny record, hvordan ser koden ud?

Dim dbs As Database
Set dbs = OpenDatabase("c:\company shared folders\shiptoolDATA.mdb")

dbs.Execute "Insert Into [tblUserData] ( fldUserID, fldUserName, fldUserPass ) Select 'pvs', 'Peter Valdemar Stokbro', 'givape'"

If dbs.RecordsAffected = 0 Then

MsgBox "User allready added", vbInformation
Else

MsgBox dbs.RecordsAffected & " Record(s) were added", vbInformation, "Add user"
End If

DoCmd.Quit
03. juni 2003 - 16:05 #11
Hvis fldUserID er unikt, så skal det se således ud:

Dim dbs As Database
Set dbs = OpenDatabase("c:\company shared folders\shiptoolDATA.mdb")

Dbs.execute "Delete From tblUserData Where fldUserID = 'pvs'"
dbs.Execute "Insert Into [tblUserData] ( fldUserID, fldUserName, fldUserPass ) Select 'pvs', 'Peter Valdemar Stokbro', 'givape'"

If dbs.RecordsAffected = 0 Then

MsgBox "User allready added", vbInformation
Else

MsgBox dbs.RecordsAffected & " Record(s) were added", vbInformation, "Add user"
End If

DoCmd.Quit
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