Recordset edit DAO en ADODB

Status
Niet open voor verdere reacties.

mindgame112

Gebruiker
Lid geworden
5 okt 2009
Berichten
61
Beste mensen hier,

Ik ben nu bezig met een nieuwe manier om mijn records te wijzigen met een unbound form omdat anders per ongeluk wijzigingen worden gemaakt. En nu heb ik meer controle over wat er wel en niet de tabel in gaat.

Maar mijn probleem is het volgende:

Ik gebruik nu deze code:

Code:
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim strSQL As String
strSQL = "SELECT * FROM Stoffenlijst_Volledig WHERE Stoffenlijst_Volledig.Id = " & Me.Keuze_delete
rs.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockReadOnly
If rs.EOF And rs.BOF Then
MsgBox "Er is iets fout gegaan, probeer opnieuw"
rs.Close
Set rs = Nothing
Exit Sub
Else
Me.txtSynoniemen = rs!Synoniemen

'hier staat nog veel meer van hetzelde

rs.Close
Set rs = Nothing
End If

Maar door het gebruik van de ADODB recordset kan ik wel nu zo die informatie opschrijven maar als ik op dezelfde manier de record wil opslaan nadat wijzigingen zijn gemaakt herkent hij rs.edit niet meer.

Nu stond er ergens dat dat komt omdat je dan een DAO recordset moet gebruiken maar als ik alles verander in DAO dan werkt set rs = NEW recordset niet meer. ook niet set rs = new DAO.recordset. Kan ik iets anders gebruiken dan bij dat new recordset of met een ADODB database een andere manier gebruiken om de record te editten ?

Is beetje lastige vraag hoop dat ik genoeg info gegeven heb.

Met vr. gr.

Sjoerd
 
Edit is geen modus van ADODB, maar van DAO. Vandaar de opmerking om alles over te zetten naar ADO.
Ik heb hier een voorbeeldje waar je wel wat uit kunt halen over werken met ADODB.
 

Bijlagen

Edit is geen modus van ADODB, maar van DAO. Vandaar de opmerking om alles over te zetten naar ADO.
Ik heb hier een voorbeeldje waar je wel wat uit kunt halen over werken met ADODB.

Dankjewel alvast ik kijk vanavond wel even want heir op me stage heb ik geen winrar dus kan t niet openen :thumb:
 
Ik ben nu even verder gaan proberen maar loop nu alleen nog tegen tegen de melding :

Bijwerken wordt door de huidige verzameling records niet ondersteund. Dit kan een beperking zijn van de voorziening of het geselecteerde type vergrendeling.

dat gebeurt met deze code:

Code:
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim strSQL As String
strSQL = "SELECT * FROM Stoffenlijst_Volledig WHERE Stoffenlijst_Volledig.Id = " & Me.Keuze_delete
rs.Open strSQL, CurrentProject.Connection, adOpenStatic
If rs.EOF And rs.BOF Then
MsgBox "Er is iets fout gegaan, probeer opnieuw"
rs.Close
Set rs = Nothing
Exit Sub
Else


rs!Synoniemen = Me.txtSynoniemen
rs!Casnr = Me.txtCasnr
rs!Leverancier = Me.txtLeverancier
rs!Firma = Me.txtFirma
rs!Artikelnummer = Me.txtArtikelnummer
rs!EGIndexNr = Me.txtEGIndexNr
rs!EGNummer = Me.txtEgnummer
rs!Molecuulformule = Me.txtMolecuulformule
rs!Beschrijving = Me.txtChembeschrijving
rs!Voorkomen = Me.txtVoorkomen
rs!kleur = Me.txtKleur
rs!Geur = Me.txtGeur
rs!Vlamp = Me.txtVlamp
rs!PGS15 = Me.txtPGS15
rs!ADR = Me.txtADR
rs!Ondergrens = Me.txtOndergrens
rs!Symbool1 = Me.txtSymbool1
rs!Symbool2 = Me.txtSymbool2
rs!Rzinnen = Me.txtRzinnen
rs!Szinnen = Me.txtSzinnen
rs!Grenswaarden = Me.txtGrenswaarden
rs!Handschoenen = Me.txtHandschoenen
rs!Oogbescherming = Me.txtOogbescherming
rs!Stofmasker = Me.txtStofmasker
rs!Ruimte = Me.txtRuimte
rs!Locatie = Me.txtLocatie
rs!Plank = Me.txtPlank
rs!Voorraadmax = Me.txtVoorraad
rs!Voorraadnu = Me.txtVoorraadnu
rs!Bepaling = Me.txtBepaling
rs!Opmerkingen = Me.txtOpmerkingen
rs!Houdbaarheid = Me.txtHoudbaarheid
rs!MSDS = Me.txtMSDS
rs!CMR = Me.chkCMR
rs!Afval = Me.txtAfval
rs.Update
rs.Close

Set rs = Nothing
End If
Exit Sub

Dus volgens mij ben ik er bijna ...
 
heeft iemand misschien nog een idee hoe ik die melding kan verhelpen ? ik open nu dus ook die recordset als static maar heb alles geprobeerd maar kan nog steeds niet wegschrijven. Is dit een fundamenteel probleem of is het een kleine wijziging misschien?

Hulp word erg op prijs gesteld ;)

Sjoerd
 
heeft iemand misschien nog een idee hoe ik die melding kan verhelpen ? ik open nu dus ook die recordset als static maar heb alles geprobeerd maar kan nog steeds niet wegschrijven. Is dit een fundamenteel probleem of is het een kleine wijziging misschien?

Hulp word erg op prijs gesteld ;)

Sjoerd

Nou na echt een heele hoop proberen toch gelukt hoor...

Code is nu als volgt en nu werkt ie wel met wegschrijven!

Code:
Private Sub wijzigingen_opslaan_Click()
On Error GoTo Err_wijzigingen_opslaan_Click

If MsgBox("Wijzigingen opslaan?", vbYesNo + vbQuestion, "Opslaan?") = vbYes Then

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
Dim strSQL As String
strSQL = "SELECT * FROM Stoffenlijst_Volledig WHERE Stoffenlijst_Volledig.Id = " & Me.Keuze_delete
rs.Open strSQL, CurrentProject.Connection
If rs.EOF And rs.BOF Then
MsgBox "Er is iets fout gegaan, probeer opnieuw"
rs.Close
Set rs = Nothing
Exit Sub
Else


rs!Synoniemen = Me.txtSynoniemen
rs!Casnr = Me.txtCasnr
rs!Leverancier = Me.txtLeverancier
rs!Firma = Me.txtFirma
rs!Artikelnummer = Me.txtArtikelnummer
rs!EGIndexNr = Me.txtEGIndexNr
rs!EGNummer = Me.txtEgnummer
rs!Molecuulformule = Me.txtMolecuulformule
rs!Beschrijving = Me.txtChembeschrijving
rs!Voorkomen = Me.txtVoorkomen
rs!kleur = Me.txtKleur
rs!Geur = Me.txtGeur
rs!Vlamp = Me.txtVlamp
rs!PGS15 = Me.txtPGS15
rs!ADR = Me.txtADR
rs!Ondergrens = Me.txtOndergrens
rs!Symbool1 = Me.txtSymbool1
rs!Symbool2 = Me.txtSymbool2
rs!Rzinnen = Me.txtRzinnen
rs!Szinnen = Me.txtSzinnen
rs!Grenswaarden = Me.txtGrenswaarden
rs!Handschoenen = Me.txtHandschoenen
rs!Oogbescherming = Me.txtOogbescherming
rs!Stofmasker = Me.txtStofmasker
rs!Ruimte = Me.txtRuimte
rs!Locatie = Me.txtLocatie
rs!Plank = Me.txtPlank
rs!Voorraadmax = Me.txtVoorraad
rs!Voorraadnu = Me.txtVoorraadnu
rs!Bepaling = Me.txtBepaling
rs!Opmerkingen = Me.txtOpmerkingen
rs!Houdbaarheid = Me.txtHoudbaarheid
rs!MSDS = Me.txtMSDS
rs!CMR = Me.chkCMR
rs!Afval = Me.txtAfval
rs.Update
rs.Close

Set rs = Nothing
End If
Exit Sub


Exit_wijzigingen_opslaan_Click:
    Exit Sub

Err_wijzigingen_opslaan_Click:
    MsgBox Err.Description
    Resume Exit_wijzigingen_opslaan_Click
    
Else
End If
End Sub
 
Kleine aanvulling:
Ik zou de foutafvanging uit de If-routine halen. Dus zo:

Code:
....
    End If
    Exit Sub
End If

Exit_wijzigingen_opslaan_Click:
    Exit Sub

Err_wijzigingen_opslaan_Click:
    MsgBox Err.Description
    
End Sub

Anders komt-ie er nooit...
 
Kleine aanvulling:
Ik zou de foutafvanging uit de If-routine halen. Dus zo:

Code:
....
    End If
    Exit Sub
End If

Exit_wijzigingen_opslaan_Click:
    Exit Sub

Err_wijzigingen_opslaan_Click:
    MsgBox Err.Description
    
End Sub

Anders komt-ie er nooit...

Klopt je hebt gelijk had ik ff niet gezien. Dat is nog die automatische gegenereerde foutafvanging die haal ik er normaal wel uit maar ik had em ff over t hoofd gezien !

Toch bedankt ben eindelijk klaar met dit project op me stage nu werkt alles :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan