Visual Basic 6-applicaties, gemigreerd naar het web
In veel bedrijven verwerken Visual Basic 6-programma's nog steeds orders, productie, afspraken en boekhouding, meer dan vijfentwintig jaar na de laatste versie. Wij migreren ze naar webapplicaties in C#, met behoud van de gegevens en de bedrijfsregels, met of zonder de oorspronkelijke broncode.
Waarom nu
Microsoft stopte op 08/04/2008 met de ondersteuning van de ontwikkelomgeving van Visual Basic 6. De runtime wordt nog met Windows meegeleverd en blijft ondersteund zolang de Windows-versies waarin hij zit, waaronder Windows 11, worden ondersteund, maar alleen als 32-bits onderdeel en alleen bij ernstige regressies en kritieke beveiligingsproblemen. Besturingselementen die geen deel uitmaken van Windows, zoals MSCOMCTL.OCX, MSFLXGRD.OCX en bijna elke OCX van derden, moeten met de applicatie worden geïnstalleerd en vallen niet onder Microsoft.
In de praktijk zit de moeilijkheid bij mensen en hulpmiddelen. Microsoft ondersteunt de IDE niet op 64-bits Windows, er zijn elk jaar minder ontwikkelaars die VB6 kennen, en elke vervangende pc betekent weer een installatie met componenten die met de hand worden geregistreerd.
- Ontwikkelomgeving Visual Basic 6Einde van de ondersteuning door Microsoft
- Windows 10Einde van de ondersteuning door Microsoft
Wat we overzetten
Het hele programma, ook alles waarvan het buiten de eigen code afhangt.
Formulieren en besturingselementen
Vensters met tekstvakken, keuzelijsten, grids, tabbladen en besturingselementmatrices, waaronder MSFlexGrid, ListView en TreeView. Ze worden webpagina's met de indeling die mensen gewend zijn.
Logica in modules en klassen
Berekeningen, controles en procedures, verspreid over .bas- en .cls-bestanden en formulierevents. We brengen ze onder in services op de server, gedekt door tests.
Gegevenstoegang
DAO-, RDO- en ADO-code die werkt met Access, SQL Server, Oracle of andere databases, inclusief SQL die door tekst aan elkaar te plakken is opgebouwd. De gegevens gaan naar SQL Server of MySQL, of blijven waar ze zijn als andere systemen ervan afhangen.
Rapporten en afdrukken
Crystal Reports, DataReport en afdrukken die regel voor regel met het
Printer-object worden getekend. Elk ervan wordt een pdf-document met dezelfde inhoud.COM-componenten en DLL's
Zelfgeschreven ActiveX-DLL's, componenten van derden en Windows API-aanroepen via
Declare. We brengen ze allemaal in kaart en bepalen of ze worden vervangen, herschreven of niet meer nodig zijn.Bestanden, instellingen en apparaten
Configuratie in INI-bestanden of het register, imports uit tekstbestanden, en verbindingen met weegschalen, etikettenprinters of seriële apparaten via MSComm. We controleren welke daarvan nog iets lokaal geïnstalleerd nodig hebben.
Hoe de webversie eruitziet
- Dashboard
- Agenda
- Patiënten
- Behandelingen
- Rapporten
| Tijd | Dr Valdrin | Dr Sato | Mondhygiënist |
|---|---|---|---|
| 08:30 | L. Moreau - Controle | A. Bianchi - Gebitsreiniging | |
| 09:00 | K. Novak - Vulling | ||
| 09:30 | S. Haddad - Kroon | J. Lindqvist - Gebitsreiniging | |
| 10:00 | P. Ortega - Wortelkanaal | ||
| 10:30 | E. Kowalski - Controle | ||
| 11:00 | N. Ferri - Extractie | R. Dimitrov - Gebitsreiniging | |
| 11:30 | T. Brennan - Vulling | ||
| 12:00 | C. Duval - Controle | H. Ito - Gebitsreiniging |
Een afsprakenboek zoals het er in een VB6-programma op de pc van de receptie uit had kunnen zien, en dezelfde week in de browser.
Sleep de schuifregelaar of gebruik de pijltjestoetsen.
Waar elk onderdeel terechtkomt
- In VB6: Formulieren (.frm) en hun events
- In de webapplicatie: Webpagina's, met de logica op de server
- In VB6: Modules (.bas) en klassen (.cls)
- In de webapplicatie: C#-services, gedekt door geautomatiseerde tests
- In VB6: OCX-besturingselementen, op elke pc geregistreerd
- In de webapplicatie: Standaard webcomponenten, niets te installeren
- In VB6: ADO- of DAO-recordsets
- In de webapplicatie: Geparametriseerde query's op SQL Server of MySQL
- In VB6: Crystal Reports of DataReport
- In de webapplicatie: Pdf-documenten, gemaakt door de server
- In VB6: Een installatiepakket voor elke werkplek
- In de webapplicatie: Eén adres, geopend in de browser
Hoe de migratie verloopt
Analyse binnen 48 uur
U stuurt ons het geïnstalleerde programma en de database, plus de broncode (.vbp, .frm, .bas, .cls) als u die hebt. Binnen 48 uur krijgt u een schriftelijk rapport: wat het programma vandaag doet, waar de risico's zitten, hoe de webversie zou worden opgezet, een vaste prijs voor een pilotmodule en een raming voor de rest. Het is gratis en verplicht u tot niets.
Pilotmodule
We bouwen één deel van de applicatie op een kopie van uw echte gegevens, meestal het deel dat het meest wordt gebruikt. Uw medewerkers werken er dagelijks mee voordat u over de rest beslist.
Dezelfde gegevens, dezelfde uitkomsten
We leggen vast wat het VB6-programma oplevert voor een reeks echte gevallen, zoals prijzen, totalen en gegenereerde documenten, en controleren de nieuwe applicatie tegen die uitkomsten. Elke bedrijfsregel die we vinden, wordt ook een geautomatiseerde test die vóór elke latere release opnieuw draait. U ontvangt een rapport met de uitkomst van elke controle.
30 dagen parallel
Als de volledige applicatie klaar is, blijft het VB6-programma er 30 dagen naast in gebruik. Elk verschil komt aan het licht terwijl het oude programma er nog is, en wij lossen het op binnen de afgesproken prijs.
Veelvoorkomende valkuilen, en hoe we ze aanpakken
Afhankelijkheden van OCX en ActiveX
Veel VB6-programma's leunen op besturingselementen die niet met Windows worden meegeleverd, soms van leveranciers die niet meer bestaan, en Microsoft noemt bestanden als
GRID32.OCXenTHREED32.OCXuitdrukkelijk niet ondersteund. De analyse somt elke afhankelijkheid op, wat die in het programma doet en wat ervoor in de plaats komt.Variant, standaardeigenschappen en stille conversies
VB6 zet ongemerkt om tussen tekst, getallen en datums, en een regel als
Text1 = rs!Totalleunt op standaardeigenschappen. Een letterlijke vertaling naar C# of VB.NET gedraagt zich anders in randgevallen, bijvoorbeeld bij lege velden of datums in een andere landnotatie. Wij herschrijven die plekken weloverwogen en dekken ze af met tests.On Error Resume NextDit komt veel voor in VB6-code: het verbergt fouten en laat het programma doorgaan met half opgeslagen gegevens. Waar we het tegenkomen, zoeken we uit wat de oorspronkelijke auteur wilde voorkomen en handelen we dat geval expliciet af. Anders zou de nieuwe applicatie ofwel met een foutmelding stoppen, ofwel dezelfde stille fouten herhalen.
16-bits
Integeren afrondingEen
Integerin VB6 houdt op bij 32.767, de oorzaak van veel overflowfouten zodra een tabel groeit.Currencybewaart vier decimalen enRoundrondt af volgens de bankiersregel. Wij bouwen de afronding na die het bedrijf verwacht en geven aan waar het oude programma het fout deed.SQL opgebouwd door tekst aan elkaar te plakken
Query's die met
&worden samengesteld uit wat de gebruiker intypt, zijn kwetsbaar voor SQL-injectie en lopen vast op namen met een apostrof. In de nieuwe applicatie gebruikt elke query parameters.Ontbrekende of verouderde broncode
Soms is de broncode kwijt, of komt de bewaarde kopie niet overeen met het programma dat in gebruik is. Een gecompileerd VB6-programma is niet terug te zetten in betrouwbare broncode, dus gaan we uit van het draaiende programma, de database en de schermen, en vermeldt de analyse welke delen meer onzekerheid hebben.
Prijs en betaling
Analyse
Gratis
schriftelijk, binnen 48 uur
Pilotmodule
€ 1.000–1.500
meestal; 50% bij de start, 50% bij acceptatie
Betalingsvoorwaarden
We vragen 50% bij de start en 50% bij acceptatie. De tweede helft is verschuldigd vóór de livegang en vóór de overdracht van de broncode. Bij grotere projecten volgen de betalingen de afgesproken fases.
De analyse is gratis. Besluit u niet verder te gaan, dan houdt u het rapport en bent u niets verschuldigd.
Prijzen zijn vast en worden schriftelijk vastgelegd voordat we beginnen. Verandert het werk, dan sturen we een nieuwe schriftelijke offerte en gaan we pas verder na uw akkoord.
Bij een volledige migratie streven we naar een prijs die 40 tot 60% onder de gebruikelijke offerte van een bureau ligt. Dat kan omdat we een kleine studio zijn, zonder kantoorpanden en zonder verkoopafdeling.
Prijzen exclusief btw.
Een echte migratie, gecontroleerd met tests
Northwind is de voorbeelddatabase die Microsoft met Access meeleverde, geen klant van ons. We hebben een openbare kopie gemigreerd naar SQLite en PostgreSQL, elke tabel en elke query met geautomatiseerde tests vergeleken met het origineel en op het resultaat een werkende webapplicatie gebouwd. De casestudy geeft de cijfers, het equivalentierapport somt elke controle op.
Northwind is een Access-database, maar voor Visual Basic 6 volgen we dezelfde aanpak: migreren, de uitkomsten met dezelfde gegevens vergelijken met het origineel en beide programma's naast elkaar laten draaien.
Equivalentierapport (in het Engels) · Klikbare preview en voorbeeldanalyse (demo)

Veelgestelde vragen
We hebben de broncode niet. Kunt u het programma toch migreren?
Vaak wel. We gaan uit van het programma zoals het in gebruik is, de database en schermafbeeldingen of opnamen van hoe mensen ermee werken. In de analyse staat welke delen we met zekerheid kunnen nabouwen en waarvoor we uw input nodig hebben.
Waarom de code niet automatisch omzetten naar VB.NET of C#?
Conversietools leveren code op die compileert, maar die de desktopstructuur behoudt, vaak afhangt van compatibiliteitsbibliotheken en de oude problemen meeneemt. Voor een webapplicatie bouwen we de schermen opnieuw en zetten we de logica over, met de VB6-code als specificatie van wat het programma doet.
Werkt ons VB6-programma straks niet meer op Windows 11?
Niet uit zichzelf: Microsoft ondersteunt de VB6-runtime op Windows 11. Wat vaak misgaat, is alles eromheen, zoals niet-geregistreerde OCX-bestanden, verloren installatiepakketten, oude databasedrivers en de IDE, die Microsoft niet ondersteunt op 64-bits Windows.
Ons programma communiceert met een weegschaal of etikettenprinter. Kan een webapplicatie dat ook?
Meestal wel, maar dat is het ene onderdeel waarvoor misschien een klein programma nodig is op de pc die met het apparaat is verbonden. We controleren dat tijdens de analyse en nemen het mee in de prijs.
Kunnen we één onderdeel tegelijk migreren?
Ja. De pilotmodule is het eerste onderdeel, en de rest kan in fasen volgen. Waar mogelijk delen het VB6-programma en de webapplicatie tijdens de overgang dezelfde database.
In welke taal wordt de nieuwe applicatie geschreven?
Meestal in C# met ASP.NET Core, dat elke .NET-ontwikkelaar kan onderhouden. PHP met MySQL is een optie als uw IT-leverancier daarmee werkt.
Andere diensten
Alle diensten- Modernisering van verouderde softwareAccess, Excel VBA, VB6, Delphi en oudere .NET, opnieuw gebouwd voor het web
- Microsoft Access naar webapplicatieTabellen, query's, formulieren, rapporten en VBA overgezet naar een webapplicatie op SQL Server of MySQL.
- Excel VBA naar webapplicatieWerkmappen met macro's, UserForms en gekoppelde bladen omgezet in een webapplicatie voor meerdere gebruikers.
- Migratie van Delphi-applicatiesDelphi-programma's op BDE, Paradox of dBase overgezet naar een webapplicatie op een SQL-database.
- Modernisering van oudere .NET-applicatiesWinForms- en ASP.NET Web Forms-applicaties overgezet naar ASP.NET Core, met behoud van wat nog werkt.
Contact
Kies het kanaal dat u het beste uitkomt. We antwoorden binnen één werkdag per e‑mail, in het Nederlands.
Per e‑mail
riccardo@Stuur ons het programma en de database, desgewenst met testgegevens, of een korte beschrijving van wat het doet. U krijgt binnen één werkdag antwoord.
Stuur ons uw bestand
Is het programma gemaakt in Access, Excel, VB6, Delphi of een oudere versie van .NET? Dan ontvangt u binnen 48 uur na het versturen van het bestand een gratis schriftelijke analyse.
- Maak een kopie van het bestand, desgewenst met testgegevens.
- Voeg die toe aan het formulier of aan een e‑mail, bij voorkeur als archief met een wachtwoord dat u apart stuurt. Op verzoek tekenen we eerst een geheimhoudingsovereenkomst.
- Binnen 48 uur: de analyse en een vaste prijs voor een pilotmodule.
Wij werken vanuit Italië.