melding "kan de database niet openen"

  • Onderwerp starter Onderwerp starter RDIE
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

RDIE

Gebruiker
Lid geworden
25 aug 2013
Berichten
83
Hoi,
IK heb het volgende probleem. In mijn database is onlangs kennelijk iets fout gegaan, maar ik kan niet precies terug halen wat en/of wanneer. Sindsdien krijg ik regelmatig de melding: "Kan de database niet openen, mogelijk wordt de database niet door de toepassing herkend of is het bestand beschadigd". Dit doet zich voor bij het uploaden van een bijlage, en dan soms wel en soms ook weer niet, maar ook bij opslaan op afsluiten krijg ik de melding. Als ik de melding via de escape toets een aantal malen wegklik dan sluit de database af. Aangebrachte wijzigingen worden echter wel opgeslagen. Ik kan de database dus wel weer gewoon openen, erin werken etc.
Daarnaast kreeg ik de melding "u heeft geprobeerd een commit- of roll-back aktie voor een transactie uit te voeren zonder eerst een transactie te beginnen" (?)

Wie weet hoe en ik de oorsprong van deze fout moet zoeken en/ of hoe op te lossen?

Mijn hartelijke dank alvast.
 
Zonder de db is er weinig van te zeggen.
 
Inmiddels ben ik er achter dat de fout zeer waarschijnlijk te maken heeft met een aantal velden van het type "bijlage" Hierin plaats ik met regelmaat kopieën van bijvoorbeeld klantovereenkomsten. Dit zijn nagenoeg altijd pdf's. Zou het kunnen dat dit kritisch is? Zo ja, is er daar dan een betere oplossing voor?
Bedankt weer.
 
Als je mijn bijdragen aan dit forum een beetje volgt, dan weet je dat ik een onbehoorlijk grote hekel heb aan het Bijlage veld. In elke vraag waar een db bij zit met een bijlageveld geef ik dus, gevraagd of ongevraagd, het advies om dat veld weg te mieteren en te vervangen door een tekstveld waarin je de bestandsnaam en het pad opslaat. Probleem opgelost...
 
Nou, daar zal ik dan maar eens mee beginnen.
Bedankt voor je reactie.
 
Kleine aanvulling nog (gisteren niet teveel tijd gehad :) ): als je een bestand opslaat in een tekstvak, wil je dat natuurlijk wel makkelijk kunnen vullen. Daarvoor gebruik ik dan een FileDialog venster dat getriggerd wordt door een klik in het tekstvak. Bij een leeg tekstvak wil je waarschijnlijk een bestand ophalen en plaatsen, en bij een gevuld tekstvak wil je vermoedelijk het opgeslagen document bekijken. Dat doe ik dan ongeveer zo:
Code:
Private Sub BestandsNaam_DblClick(Cancel As Integer)
    If Me.kopie_cv & "" = "" Then
        Me.BestandsNaam.Value = BestandOpzoeken
    Else
        Application.FollowHyperlink Me.Bestandsnaam.Value
    End If
End Sub

En de functie ziet er dan zo uit:
Code:
Function BestandOpzoeken(Optional Pad As String) As String
Dim dlgPicker As FileDialog
Dim sType() As String, sFile As String
Dim tmp As String, sPad As String
Dim bCheck As Boolean
Dim vrtSelectedItem As Variant

    On Error GoTo Hell
    If Pad = "" Then sPad = CurrentProject.PATH Else: sPad = Pad
    If Right(sPad, 1) <> "\" Then sPad = sPad & "\"
    Set dlgPicker = Application.FileDialog(msoFileDialogFilePicker)
    With dlgPicker
        .Title = "Selecteer een bestand." 'De titel voor het venster
        .InitialFileName = sPad      'Waar moet het venster beginnen?
        With .Filters
            .Clear
            .Add "Microsoft Word", "*.doc; *.docx; *.docm", 1       'Beperk de bestandstypes tot .doc
            .Add "Microsoft Excel", "*.xls; *.xlsx; *.xlsm", 2      'Beperk de bestandstypes tot .xls
            .Add "Adobe Reader", "*.pdf", 3                         'Beperk de bestandstypes tot .pdf"
            .Add "Afbeeldingen", "*.jpg; *.jpeg; *.png", 4          'Beperk de bestandstypes tot afbeeldingen
            .Add "Alles", "*.*", 5                                  'Geen Beperkingen op bestandstype"
        End With
        .FilterIndex = 1
        .AllowMultiSelect = False                   'Slechts één bestand kiezen toegestaan
        .InitialView = msoFileDialogViewList        'Bepaal weergave
        If .Show = -1 Then                          'Bepaal of gebruiker op OK-knop heeft geklikt.
            sFile = .SelectedItems(1)           'String wordt gevuld met geselecteerde bestand
        Else
            MsgBox "Er is op <Annuleren> gedrukt..."
            BestandOpzoeken = "Annuleren"
            GoTo Hell
        End If
    End With
    BestandOpzoeken = sFile
    
Hell:
    Set dlgPicker = Nothing

End Function
 
Super.
Ik ga ermee aan de slag.
Bedankt weer zover!
 
Beste Octafisch,

Ik heb een testveldje: copyJaarafr aangemaakt van het type "korte tekst". Een knopje op het formulier gezet met de aangegeven routine eronder.
Het inkopiëren van de link en via het stukje vba terugzoeken van het betreffende bestand werkt perfect! Hartelijk dank hiervoor.

Bij de functie Bestandopzoeken, wanneer het veld leeg is krijg ik echter een foutmelding bij: Dim dlgPicker As FileDialog
De foutmelding is: "compileerfout, een door de gebruiker gedefinieerd gegevenstype is niet gedefinieerd"

Heb je een idee hoe dit te verhelpen?

Mijn dank weer.
 
Laatst bewerkt:
Ik vermoed dat je de Office bibliotheek nog moet aciveren.
 
Excuus maar dat begrijp ik niet goed.
Wat / waar moet ik wat doen?
BVD
 
In het VBA venster moet je naar <Extra>, <Verwijzingen> en daar de Microsoft Office bibliotheek aanvinken.
 
Er zijn een paar bibliotheken die ik standaard eigenlijk altijd wel aan zet. Dit is er één van. Juist vanwege dit soort functies. Alternatief is trouwens om hem in Late Binding te gebruiken, dan heb je de bibliotheek niet nodig. En dat kan weer handig zijn als je een db met anderen deelt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan