[Access VBA] #Verwijderd (status van records opvragen)

Pagina: 1
Acties:
  • 442 views sinds 30-01-2008
  • Reageer

  • BovenHond
  • Registratie: Februari 2002
  • Laatst online: 25-05 14:10
In visual basic probeer ik de status van het huidige record op te vragen.

bedoeling
Als een record is gewist dan moet een waarde uit een volgend record worden gebruikt.

vraag

Met wat voor code kan ik de status van het record uitlezen. Ik heb al geprobeerd
Me.Dirty (dit geeft alleen aan of het record al is gesynchroniseerd
Me.Recordset.status
if Me.Veld_autonummering.value = null etc etc.

De help van access biedt me geen oplossing

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • BovenHond
  • Registratie: Februari 2002
  • Laatst online: 25-05 14:10
Faabman,

dit is niet helemaal wat ik bedoel,

bij het uitvoeren van de volgende code

code:
1
2
3
4
5
If Me.Recordset.Fields("Bdr_naam") = adFieldOK Then
MsgBox "Field ok"
Else
MsgBox "probleemrecord"
End If



geeft hij de foutmelding "De Record is verwijderd"

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
moet

ASP:
1
Me.Recordset.Fields("Bdr_naam")


niet zijn

ASP:
1
Me.Recordset.Fields("Bdr_naam").Status


:?

[ Voor 64% gewijzigd door faabman op 03-05-2004 13:32 ]

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • BovenHond
  • Registratie: Februari 2002
  • Laatst online: 25-05 14:10
:
moet

code:
1
2
3
Me.Recordset.Fields("Bdr_naam") 
-------->
Me.Recordset.Fields("Bdr_naam").Status
Nee, daarmee veranderd de foutmelding naar: "De eigenschap of methode wordt niet ondersteund door dit object."

[ Voor 10% gewijzigd door BovenHond op 03-05-2004 14:11 ]


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
wat is eigenlijk het object Me :?

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Volgens mij is Status een property van het recordset object, dus zou het me.recordset.Status moeten zijn, nietwaar? Het lijkt me dat een verwijderd record geen toegang tot de Fields collectie toestaat.

  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 13:58
In het kader van creatief omgaan met fouten het volgende

Visual Basic:
1
2
3
4
On Error Resume Next
Me.Recordset.Fields("Bdr_naam") = Me.Recordset.Fields("Bdr_naam")
If Err Then Me.Recordset.MoveNext
On Error Goto 0

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


  • BovenHond
  • Registratie: Februari 2002
  • Laatst online: 25-05 14:10
nescafe schreef op 03 mei 2004 @ 16:13:
In het kader van creatief omgaan met fouten het volgende

Visual Basic:
1
2
3
4
On Error Resume Next
Me.Recordset.Fields("Bdr_naam") = Me.Recordset.Fields("Bdr_naam")
If Err Then Me.Recordset.MoveNext
On Error Goto 0
Dat klopt met creatief foutenbeheersing kan je ver komen. Zo maak ik op dit moment gebruik van

code:
1
2
3
4
5
6
7
8
On error goto foutmelding
Foutmelding:
        Select Case Err.Number
        
                Case 3167
                    'MsgBox "Dit bedrijf is reeds verwijderd"
                                
         End Select


Maar dat is géén elegante oplossing en in een poging mijn programmeerwerk wat gestructureerder te krijgen zoek ik nu een degelijkere oplossing dan "on errror"

@ faabman

Het object Me. is het huidige geopende form. Dus in plaats van
Form_bedrijven.Recordset.Fields..etc kan je ook schrijven
Me.Recordset.Fields

[ Voor 4% gewijzigd door BovenHond op 03-05-2004 16:56 ]


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Ik schreef het net al en heb het ook nog even hier geverifieerd, maar je kunt gewoon de status van het record opvragen dmv de property Status van het object recordset. Dus:

Me.RecordSet.Status

  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 13:58
Matsu_matsu schreef op 03 mei 2004 @ 13:04:
Met wat voor code kan ik de status van het record uitlezen. Ik heb al geprobeerd
Me.Dirty (dit geeft alleen aan of het record al is gesynchroniseerd
Me.Recordset.status

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
bigbeng schreef op 03 mei 2004 @ 17:07:
Ik schreef het net al en heb het ook nog even hier geverifieerd, maar je kunt gewoon de status van het record opvragen dmv de property Status van het object recordset. Dus:

Me.RecordSet.Status
even voor de duidelijkheid, .status is dus ook een property van het field object... zie mijn eerder linkje naar de devguru reference...

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
faabman schreef op 03 mei 2004 @ 17:11:
[...]


even voor de duidelijkheid, .status is dus ook een property van het field object... zie mijn eerder linkje naar de devguru reference...
Ik begrijp dat wel, maar als het record verwijderd is krijg je geen toegang tot het fields object, zoals de TS ondervond.

  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 13:58
bigbeng schreef op 03 mei 2004 @ 17:07:
Ik schreef het net al en heb het ook nog even hier geverifieerd, maar je kunt gewoon de status van het record opvragen dmv de property Status van het object recordset. Dus:

Me.RecordSet.Status
Let je er ook even op dat dit gaat om een update?
The Status property returns one or more RecordStatusEnum value that indicates the status of the current record with regard to batch updates or other bulk operations.
Uit de TS maak ik op dat het hier niet om een update gaat.

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


  • BovenHond
  • Registratie: Februari 2002
  • Laatst online: 25-05 14:10
Als TS zal ik het even toelichten.


Maak een form van een tabel

Gebruik de form vervolgens niet maar delete rechtstreeks uit de tabel een record (terwijl de form nog openstaat)

Dan zal er in de form de tekst #deleted komen te staan.


Als je vervolgens bewerkingen in de form wil doen zoals zoeken op bedrijfsnummer of wat dan ook. Dan loopt het in het honderd omdat de record waar de recordset van de form naar verwijst er niet meer is.

  • mr_star
  • Registratie: Maart 2003
  • Laatst online: 20-04 11:42
Is het dan niet gemakkelijker om gewoon bij het verwijderen van een record uw recordset te verzetten naar het vorige, volgende of eerste record? Zo doe ik het altans en dit levert geen enkel probleem op.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
nescafe schreef op 03 mei 2004 @ 16:13:
In het kader van creatief omgaan met fouten het volgende

Visual Basic:
1
2
3
4
On Error Resume Next
Me.Recordset.Fields("Bdr_naam") = Me.Recordset.Fields("Bdr_naam")
If Err Then Me.Recordset.MoveNext
On Error Goto 0
Vraag me af of je een deleted record wel een MoveNext kan doen. En als dat niet kan, heb je hier en loop waar ie nooit meer uitkomt. Heeft niemand je ooit verteld dat On Error Resume Next een hele grote nono is ? En default properties ook ? O-)

Btw .... hey :P

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • BovenHond
  • Registratie: Februari 2002
  • Laatst online: 25-05 14:10
farlane schreef op 03 mei 2004 @ 23:15:
[...]


Vraag me af of je een deleted record wel een MoveNext kan doen. En als dat niet kan, heb je hier en loop waar ie nooit meer uitkomt. Heeft niemand je ooit verteld dat On Error Resume Next een hele grote nono is ? En default properties ook ? O-)

Btw .... hey :P
En daarom was ik op zoek naar een status melding voor dit soort records. Zodat ik voor een procedure kan checken of het om een verwijderd record gaat (zonder error code). Zodat ik vervolgens een volgend record kan zoeken dat niet verwijderd is bijvoorbeeld. Maar gezien de hoeveelheid antwoorden vrees ik het ergste.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
Ik denk dat je beter kunt zorgen dat je geen verwijderde records in je recordset hebt zitten, dus niet openen als dynaset en je cursor clientside houden.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1