Hallo

Welkom, Gast. Alsjeblieft inloggen of registreren.

Recent

357 gasten, 0 leden

Welkom, Gast. Alsjeblieft inloggen of registreren.

29 maart 2024, 12:15:43

Login met gebruikersnaam, wachtwoord en sessielengte

Nieuws

Welkom op het vernieuwde NL Computer Forum!

Auteur Topic: Openen van in een vorige versie van je applicatie gemaakte database geeft fout  (gelezen 23439 keer)

0 leden en 1 gast bekijken dit topic.

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Ik krijg de in Onderwerp genoemde fout in de volgende code op regel 'adoConnection.Open connectString'
Private Sub Command1_Click()
Dim adoConnection As ADODB.Connection
Dim adoRecordset As ADODB.Recordset
Dim connectString As String
' Creëer een nieuwe verbinding
Set adoConnection = New ADODB.Connection
' Creëer een nieuwe recordset
Set adoRecordset = New ADODB.Recordset
' Bouw onze connection string om te gebruiken wanneer we de verbinding openen.
connectString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=I:\InvestOptimal\beleggen/DATABASE\Portef1.mdb"
adoConnection.Open connectString
adoRecordset.Open "PortefeuilleTab", adoConnection
Do Until adoRecordset.EOF
    List1.AddItem adoRecordset!Name
    adoRecordset.MoveNext
Loop
adoRecordset.Close
adoConnection.Close
Set adoRecordset = Nothing
Set adoConnection = Nothing
End Sub
Ik wil deze database converteren naar Access 2000 of 2002. Hoe doe je dat het beste, Via Acces van MS Office of door een nieuwe zelfde database aan te maken in Visual Basic 6.0 en dan de inhoud te importeren uit de oude database naar de nieuwe?
De foutcode is -2147467259(80004005).

Offline Peter

  • Sysop
  • *****
  • Berichten: 5.683
  • Geslacht: Man
Hoi Jan,

Deze map kan natuurlijk niet: I:\InvestOptimal\beleggen/DATABASE\Portef1.mdb

Hieronder een voorbeeld om dat te testen:

Private Sub Command1_Click()
Dim adoConnection As ADODB.Connection
Dim adoRecordset As ADODB.Recordset
Dim connectString As String
Dim sFile As String              'database bestand
Dim etxt As String               'error tekst
Dim e As Long                    'error status
Dim RW As Integer                'regelwijzer igv errors
On Error GoTo errhandle

' Creëer een nieuwe verbinding
RW = 0
Set adoConnection = New ADODB.Connection
' Creëer een nieuwe recordset
Set adoRecordset = New ADODB.Recordset
' Bouw onze connection string om te gebruiken wanneer we de verbinding openen.
'connectString = "Provider=Microsoft.Jet.OLEDB.4.0;"
'& "Data Source=I:\InvestOptimal\beleggen/DATABASE\Portef1.mdb"
sFile = "I:\InvestOptimal\beleggen/DATABASE\Portef1.mdb"
RW = 10
e = Len(Dir(sFile, vbArchive))
If e <> 0 Then
   RW = 20
   connectString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & sFile
   adoConnection.Open connectString
   adoRecordset.Open "PortefeuilleTab", adoConnection
   Do Until adoRecordset.EOF
      List1.AddItem adoRecordset!Name
      adoRecordset.MoveNext
   Loop
   RW = 100
   adoRecordset.Close
   adoConnection.Close
   Set adoRecordset = Nothing
   Set adoConnection = Nothing
Else
   MsgBox "File error: " & etxt & vbCrLf & sFile, vbCritical
End If
Exit Sub                               'verlaat sub als alles goed is gegaan

errhandle:
   etxt = Err.Number & " : " & Err.Description
   If RW = 10 Then
      'database bestand controle, verdergaan
   Else
      'een andere fout melden
      If MsgBox("RW=" & RW & vbCrLf & etxt, vbCritical + vbOKCancel) = vbCancel Then Exit Sub
   End If
   Resume Next
End Sub


Peter

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Hoi Peter,
Bedankt voor de code. Ik had deze fout inmiddels ook ontdekt, verbeterd en de toepassing opnieuw gedraaid, maar de fout m.b.t. vorige versies bleef bestaan. De code was imiddels al verstuurd.
Het converteren met Access van MSOffice is mislukt. Het nieuwe bestand geeft dat het mogelijk corrupt is of dat het is aangemaakt met een vorige versie en niet geopend kan worden.
 
 
Jan

Offline Peter

  • Sysop
  • *****
  • Berichten: 5.683
  • Geslacht: Man
Hoi Jan,

In VB6, open menu Project - References...
Wat is daar allemaal aangevinkt?


Peter

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Hoi Peter,
 
In Project/References is aangevinkt:
Visual Basic for Applications,
VB runtime objects and procedures,
VB objects and procedures,
MS DAO 3.6 Object Libraries,
OLE Automation,
MS ActiveX Data Objects 2.8 Library,
MS Data Environment Instance 1.0,
MS Data Binding Collection VB 6.0 (SP4),
MS ActiveX Data Objects Recordset 2.8 Library
GSServer
 
Mogelijk is er na een test met iets uitproberen 1 of 2 teveel aangevinkt gebleven.
 
 
 
Jan

Offline Peter

  • Sysop
  • *****
  • Berichten: 5.683
  • Geslacht: Man
Hoi Jan,

Dat ziet er goed uit.
Je zegt "Het converteren met Access van MSOffice is mislukt." Met welke Office versie heb je geconverteerd?


Peter
 

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Hoi Peter,
Ik heb geconverteerd met Office 2003. Als ik aanklik welke database ik wil converteren, maakt het systeem automatisch een nieuwe database aan met de namen db1 enz. Je ziet daarna niet of er iets gebeurt en als je deze databases daarna wilt openen krijg je ofwel de melding dat deze mogelijk corrupt is, ofwel dat deze niet geopend kan worden omdat hij is aangemaakt met een eerdere versie van de applicatie. Dat is vreemd, want de bedoeling van converteren was nu juist deze mededeling kwijt te raken.
Deze laatste mededeling is ook nog om ee nadere reden vreemd, omdat Access 2003 van latere datum is dan 2002 en zeker dan 2002, 2000 of 1997. Of doe ik  iets fout?
 
 
Jan

Offline Peter

  • Sysop
  • *****
  • Berichten: 5.683
  • Geslacht: Man
Hoi Jan,

Eens kijken wat er zoal in je register ingesteld staat en of je de bijbehorende bestanden aan boord hebt.
Download de bijlage jettest.txt naar je bureaublad.
Verander de extensie naar .bat.
Start jettest.bat
En worden nu 2 logbestandjes gemaakt, jet.txt en log.txt
Post beide als bijlage in een nieuw bericht.


Peter

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Hoi Peter,
Na de verandering van de extensie van jettest.txt in .bat en Uitvoeren gebeurt er niets. Het blijft een kladblok tekstbestand en wordt kennelijk niet als bat-bestand herkend. Wat doe ik fout?
 
 
Jan

Offline Peter

  • Sysop
  • *****
  • Berichten: 5.683
  • Geslacht: Man
Hoi Jan,

Citaat
Het blijft een kladblok tekstbestand en wordt kennelijk niet als bat-bestand herkend. Wat doe ik fout?
Je hebt de naam verandert, niet de extensie.
Waarschijnlijk is de volledige bestandsnaam nu jettest.bat.txt.
Doe het volgende:
Open het tekstbestand jettest.txt met Notepad
Klik op Bestand - Opslaan als...
Bij Opslaan in, selecteer Bureaublad
Bij Bestandsnaam, typ jettest.bat
Bij Opslaan als type, selecteer Alle bestanden
Klik op Opslaan

Als het goed is heb je nu wel een uitvoerbaar .bat bestand.


Peter

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Hoi Peter,
Inderdaad, nu lukte het wel. Hier zijn de bestandjes.

Offline Peter

  • Sysop
  • *****
  • Berichten: 5.683
  • Geslacht: Man
Hoi Jan,

Ok, dat geeft wat meer informatie.
De nieuwe bijlage ook even uitvoeren en de log posten.
Na het downloaden de extensie eerst veranderen in .bat en vervolgens jettest2.bat uitvoeren.

Daarna kunnen we gaan repareren.


Peter



Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Hoi Peter,
Hier is hij.
 
Jan

Offline Peter

  • Sysop
  • *****
  • Berichten: 5.683
  • Geslacht: Man
Hoi Jan,

De bijlage jet2.txt is verminkt, post aub een nieuwe.
(Niet openen/bewerken met Word of een dergelijke tekstverwerker.)


Peter

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Hoi Peter,
Hopelijk doet deze het beter.
 
 
Jan