Hallo

Welkom, Gast. Alsjeblieft inloggen of registreren.

Recent

352 gasten, 0 leden

Welkom, Gast. Alsjeblieft inloggen of registreren.

29 maart 2024, 08:41:06

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 23436 keer)

0 leden en 1 gast bekijken dit topic.

Offline Peter

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

Ok, de tekst is nog steeds verminkt maar de gegevens zijn goed.
Plaats de bijlage jetfix.txt op je bureaublad.
Verander weer de extensie in .bat
Start vervolgens jetfix.bat
Herstart je computer.

Start de bijlage jettest.bat uit een eerder bericht nogmaals ter controle.
Post de logfiles logfix.txt en jet.txt

Hoe gaat het nu met je VB programma, nog foutmeldingen?


Peter

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Hoi Peter,
Hier zijn de nieuwe bestanden.
 
 
Jan
 

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Hoi Peter,
Sorry Peter, maar het programma geeft nog steeds bij 2 onderdelen de fout Disk or network error.
Welke veranderingen heb je met het voorgaande aangebracht? Is het niet het beste de in het programma gebruikte databases opnieuw te maken met VB6 en dan de inhoud uit de bestaanden tabellen te importeren in de nieuwe. Mogelijk bestaat er ergens een voorbeeldcode om zoiets te doen. Het is wel wat werk, maar misschien toch vlugger dan voortmodderen met de oude databases. Wat denk jij? Ik kan dan tevens de data controls afdanken en met ADO verder gaan. Of misschien is het zelfs zo, dat overgaan op ADO de problemen zal oplossen ook zonder nieuwe databases te maken. Hoe kun je informatie  over de bestaande databases onttrekken, zoals is het een DAO, RDO of nog een andere database, welke versie is het, enz.? Wat opvalt is dat bij het invullen van de connection in ADO het ingevulde gedeelte niet altijd hetzelfde is. Geeft ADO automatisch al de meest voor de hand liggende soort aan?   
 
 
Jan

Offline Peter

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

Vreemd, zo te zien zijn de register wijzigingen niet toegepast.
Dit is toch een Windows XP systeem?
De 2 logfiles van het register zijn identiek. Ofwel de wijzigingen zijn niet toegepast of het is geen nieuwe logfile van de register export.

Ben je een beetje bekend met handmatig het register aanpassen ?
Eventueel maandag-avond van 21:00-22:00 de chatroom bezoeken.


Peter

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Hoi Peter,
Het lijkt er inderdaad op dat de registerwijzigingen niet zijn toegepast. Nadat ik mijn laatste antwoord had verzonden heb ik de JET en log bestanden gelezen en er achter gekomen dat je de databases hebt geconverteerd door importeren van de inhoud naar een nieuwe database. Dan zouden deze bij openen geen fout meer mogen geven dat met een vorige versie aangemaakte databases niet geopend kunnen worden, maar bij controle bleken deze fouten er nog steeds te zijn.
Ik heb inderdaad een Windows XP Professional en ben bekend met handmatig kleine wijzigingen in het register aan te brengen via regedit.
 
 
Jan
 

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Hoi Peter,
Ik heb de laatste jettest.bat ter controle nog een keer gedraaid en aangehecht om zeker te weten dat de wijzigingen in het register al dan niet zijn uitgevoerd.
 
Jan
 

Offline Peter

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

Citaat
Windows XP...
Ik begrijp even niet waarom de .bat file de register aanpassingen niet uitvoerd terwijl de logfiles wel aangeven dat de register bewerkingen uitgevoerd zijn.

Ook je laatste log laat niet de wijzigingen zien.

Dan maar handmatig het register wijzigen:

Klik op Start - Uitvoeren
Typ REGEDIT en klik op OK
De Register-editor opent nu.

Als je wilt kan je eerst een register-backup maken.

Blader in linker kolom naar HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 2.x
Rechtsklik in de rechterkolom en kies Nieuw - Tekenreekswaarde
Geef als naam win32
Geef de waarde C:\WINDOWS\System32\Msrd2x40.dll
Zie de screenshot-bijlage.

Blader in linker kolom naar HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 3.x
Rechtsklik in de rechterkolom en kies Nieuw - Tekenreekswaarde
Geef als naam win32
Geef als waarde C:\WINDOWS\System32\Msrd3x40.dll

Let op dat je de bestandsnamen goed ingeeft, of kopieer en plak ze vanaf dit bericht.

Sluit Regedit
Herstart je computer.

Hoe gaat het nu met je VB programma, nog foutmeldingen?


Peter

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Hoi Peter,
Ik heb geprobeerd de registersleutels in te geven, maar dat was al gebeurd. Het systeem met jettest.bat heeft dus wel gewerkt.
Ondanks dat blijven de fouten bestaan. Het probleem met het niet openen van de database oude versie heeft fout nummer
-2147467259 en is een vervelende fout omdat deze fout ook optreedt als ik de datacontrol vervang door ADO.
 
 
Jan
 

Offline Peter

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

Citaat
Ik heb geprobeerd de registersleutels in te geven, maar dat was al gebeurd. Het systeem met jettest.bat heeft dus wel gewerkt.
Vreemd dat de logfile dat niet meldt dan.

Citaat
Ondanks dat blijven de fouten bestaan.
Tja, dan weet ik zo 1-2-3 geen oplossing.
Misschien een meelezer.


Peter

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Hoi Peter,
Ik zal eens beginnen met alle data controls te vervangen door ADOdc's. Mogelijk geeft dat wat meer informatie waar we de fout moeten zoeken. Het resultaat daarvan zal ik weer melden.
 
Jan

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Hoi Peter,
Alle data controls vervangen door ADO-verbindingen werkt niet, omdat je geen database kunt openen die gecreëerd is in een eerdere versie van VB. Deze melding krijg ik als ik Jet 3.51 of Jet 4.0 als Provider kies. In de keuzelijst staan nog veel meer mogelijkheden. Als ik een van die andere selecteer heb ik dan wel een bij de database passende Provider en gesteld dat bepaalde databases gecreëerd zijn in VB3.0, 4.0 0f 5.0welke zou dan dan moeten zijn?
 
Jan

Offline Peter

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

Voor zover ik weet is er geen standaard manier om te bepalen waarbij een database gemaakt is. Er zijn wel eigenschappen van database bestanden op te vragen maar dat is weer afhankelijk van de manier hoe de database aangemaakt is.
Sommige database bestanden bevatten bijvoorbeeld de eigenschap "AccessVersion" wat aangeeft met welke Access versie de database gemaakt is. Zo ook de eigenschap "Jet".

Op DEZE pagina staat globaal aangegeven welke Jet-engines gebruikt zijn in access databases. 
Hopelijk kun je daar wat mee.


Peter

Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Hoi Peter,
Heb jij een verklaring voor het volgende: Als ik via Add-ins/Visual Data Manager een database probeer te openen, krijg ik de fout dat een met een vorige versie (van VB?) gecreëerde versie niet geopend kan worden (je zou denken omdat VB6 die niet verwerken kan), maar als ik voor het openen van de database met een data control werk, dan lukt het zonder problemen. Kennelijk heeft VB6 er dus totaal geen moeite mee. Als het probleem niet in VB6 zit, waarin dan wel? Of is de foutmelding flauwekul?
 
 
Jan

Offline Peter

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

Ik ben niet zo thuis in de wirwar van drivers en versies mbt databases.
Kijk HIER eens, of volg 1 van links onderaan die pagina.

Kun je wel deze databases openen met MS Access.
Zoniet, stel je vraag eens op het MS Office forum.


Peter



Offline jvdpeet †
  • Senior lid
  • ****
  • Berichten: 365
  • Geslacht: Man
Re: Openen van in een vorige versie van je applicatie gemaakte database geeft fout
« Reactie #29 Gepost op: 1 augustus 2012, 13:24:05 »
Hoi Peter,
Bedankt voor je reactie. De eerste link in het door jou aangegeven artikel geeft nuttige informatie. De fout die ik krijg heeft kennelijk geen duidelijke oplossing. Het lijkt erop dat de fout (disk or network error) een meervoudige oorzaak kan hebben. Ik krijg hem als ik de databasenaam en de recordsource op meer dan 1 plaats codeer, maar ik krijg hem ook op een plaats, waar hij
op het eerste gezicht niets met een database of een netwerk te maken heeft. Ik krijg hem namelijk in of na de routine WriteLOG, welke een onderdeel is van de systematiek die je mijn indertijd eens hebt gegeven om een logbestand van fouten die tijdens het gebruik van een van mijn toepassingen optreden te maken. Toepassing van deze code heeft veel nut opgeleverd om fouten die optreden te verbeteren. Wat zou in dit geval de oorzaak van deze fout kunnen zijn? Het errornumber is 3043 en deze wordt in forums vaak in problemen vermeld, maar ik heb geen duidelijke oplosssing kunnen vinden.
 
 
Jan