Gereserveerde Fout (-7776)

Status
Niet open voor verdere reacties.

Henk Benter

Gebruiker
Lid geworden
13 mei 2010
Berichten
154
Mijn database, welke middels ODBC is gekoppeld aan een sql server, geeft bij het openen van een formulier de foutmelding "Er is een gereserveerde fout (-7776) opgetreden. Er is geen bericht voor deze fout.". Ik heb gespeurd op internet maar helaas geen oplossing gevonden om deze fout op te lossen. Zou het te maken kunnen hebben dat er een verkeerde naam is gekozen voor een veld in de tabel, welke standaard ook in Access wordt gebruikt. Wie heeft hiermee ook ervaring gehad en kan mij helpen dit probleem op te lossen? Dank alvast.
 
Je zou eens kunnen proberen om het formulier opnieuw te maken; vaak is dat een werkbare 'workaround'. De fout ken ik verder niet, dus als je veldnamen gebruikt die niet geaccepteerd worden, dan is een foutmelding wel logisch. Maar die komt dan ook als je het formulier opnieuw maakt.
 
Ik heb de oplossing gevonden en wil deze graag delen met jullie. Ik heb enkele weken terug mijn tabellen geexporteerd naar een sql server. Aan de tabel in de sql server heb ik een veld Wijzigingsdatum toegevoegd met als standaard waarde On Update Current Timestamp (bij een wijziging moet de wijzigingsdatum in dit veld verschijnen). Wanneer ik een bestaande record open is het veld wijzigingsdatum niet gevuld met een wijzigingsdatum, dit veld was per slot van rekening nog niet aanwezig bij de export naar sql. Wanneer ik dan een record afsluit (met het kruisje rechtsboven in het formulier) zonder een wijziging aan te brengen, ontstaat de foutmelding in de onderwerpregel. Om deze foutmelding dus te voorkomen moet ik ervoor zorgen dat het veld bij openen direct gevuld wordt. Hiervoor ben ik op zoek naar code in VBA. me.refresh refresh is niet de oplossing. Heb nog geen idee hoe ik dit op moet lossen. Tips zijn welkom.
 
Dus je formulier wil je het tekstveld laten bijwerken, ook als er niks is bijgewerkt? Dat is een beetje tricky, maar wel te doen vermoed ik. Je zou eens in deze richting kunnen stoeien:
Code:
Private Sub Form_Current()
    If IsNull(Me.Tekst0.Value) Then
        Me.Tekst0.Value = Now
    End If
End Sub

Code:
Private Sub Form_Dirty(Cancel As Integer)
    Me.Tekst0.Value = Now
End Sub
 
Octafish, Ben met jou voorbeeldcode aan de slag gegaan. Heeft het probleem helaas nog niet verholpen. Een veld met de eigenschap Timestamp laat zich nog niet zo gemakkelijk aanpassen heb ik gemerkt. Geeft wel uitdaging een dergelijk probleem proberen op te lossen. Ga er maar weer mee aan de gang.
 
Ik zou er in dit geval voor kiezen om de trigger in de SQL server niet te gebruiken; je hebt immers toch al een formulier waarin je de mutaties uitvoert, dus waarom laat je Access de mutaties niet loggen? Ben je van alle gezeur af. Ik gebruik triggers in SQL server alleen voor databases die een frontend hebben die daar rechtstreeks op werken. De frontend doet dan niks anders dan de data invullen, en de server voert de triggers uit. Bijwebbased frontends werkt dat perfect.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan