Import CSV door gebruikers

Status
Niet open voor verdere reacties.

mK220856

Gebruiker
Lid geworden
7 okt 2022
Berichten
19
Ik wil de gebruikers van ons boekhoudpakket de mogelijkheid bieden een CSV-bestand met bankmutaties in te lezen in hun boekhouding.
Is er een mogelijkheid een file-upload te gebruiken of moet dat op een andere manier. Het boekhoudpakket is ontwikkeld in MS Access met VBA en staat op de computer van onze klanten.

vr gr

Hans van Heertum
 
Is er een mogelijkheid een file-upload te gebruiken of moet dat op een andere manier. Het boekhoudpakket is ontwikkeld in MS Access met VBA en staat op de computer van onze klanten.
Als het programma is dichtgetimmerd door de ontwikkelaar, en je dus niet bij de code kan komen (lijkt mij een hele grote kans) dan zou je het handmatig moeten doen via het tabblad <Externe gegevens>. Dat kan normaal gesproken altijd, hoewel deze optie kan zijn 'verwijderd' door de ontwikkelaar. Nogmaals: het hangt er vanaf hoe stevig de applicatie is dichtgebouwd door de ontwikkelaar. Bij pakketten die buiten de deur draaien, en waar je dus niet zelf aan kan sleutelen, lijkt mij die kans heel reëel.
Ik zou zelf dus nie< laten morrelen aan de onderliggende code, en het via de officiële weg (<Externe gegevens>, <Uit bestand>, <Tekstbestand> doen. Dan kun je een keurige importdefinitie maken in de wizard, en het importproces opslaan voor de volgende keer. Ga pas programmeren als het niet anders kan.
 
Maar ik weet niet waar mijn gebruiker het bestand heeft opgeslagen. Is daar ook nog een oplossing voor?
Ik ben Peter niet, dus ik durf eigenlijk geen antwoord te geven. maar wat dacht je van vragen aan de klant?
 
En uiteraard kun je ook een FileDialog venster openen om een bestand te openen. Dan zoekt de gebruiker eerst het csv bestand op dat je dan verder inleest. Omdat je zo te zien graag leest, hier een voorbeeldje :).
 
Daar heb ik niets aan toe te voegen :D
 
Meer ondersteuning

Hallo Peter,

Mocht je belangstelling hebben om op incidentele basis en tegen een vergoeding vaker ondersteuning te bieden, dan bel ik je graag even.
Stuur in dat geval even je nummer naar info@premiumsoftware.nl.

Groet,

Hans
 
Ik hou het maar gratis hulp waar ik kan :thumb:
 
Je voorbeelden

Peter, ik heb je voorbeelden bekeken en opgenomen in mijn toepassing.
Het ziet er met al die punten anders uit dan ik gewend ben in VBA
En geeft allerlei foutmeldingen.
Wat doe ik fout?:rolleyes:
 
De is moeilijk, zo niet onmogelijk, te zeggen als we niet weten wat je precies doet en welke foutmelding je krijgt.
 
Jammer dat je alleen Peter om hulp vraagt, er zijn meer mensen die je kunnen (en willen) helpen… En voor minstens dezelfde kwaliteit :).
 
De is moeilijk, zo niet onmogelijk, te zeggen als we niet weten wat je precies doet en welke foutmelding je krijgt.

Sorry. Ik denk dat het hier al fout gaat:
Private Sub Form_Load()
' Requires reference to Microsoft Office 11.0 Object Library.

Dim fDialog As Office.FileDialog
Dim varFile As Variant
 
Dan moet je die verwijzing dus even leggen. Overigens is in mijn M365 al toe aan versie 16.0.

Het kan ook zonder die verwijzing, namelijk zo:
Code:
Dim MijnBestand As String

With Application.FileDialog(3)
    .Title = "Bestand selecteren"
    .InitialFileName = "D:\"
    .Filters.Clear
    .Filters.Add "CSV-bestanden", "*.CSV"
    .AllowMultiSelect = False
    If .Show <> 0 Then
        MijnBestand = .SelectedItems.Item(1)
    Else
        Exit Sub
    End If
End With


'Doe je ding met MijnBestand

Enne... om van zo veel mogelijk antwoorden gegarandeerd te blijven is het inderdaad wel netjes om geen vragen direct aan een deelnemer te stellen, maar aan de groep. Je opereert hier immers in een forum en iedereen is bereid een steentje bij te dragen. Maar als iemand zich uitgesloten voelt zal hij (m/v/x) afhaken en mis je misschien waardevolle tips.
 
En dat laatste geldt, lijkt mij, ook voor mensen die wél bereid/in staat zijn om tegen betaling, indien dat gewenst is, zaken voor je te maken. Al zou ik dat dan doen via een PM, en het buiten het forum houden. Lijkt mij wel zo netjes.
 
Dan moet je die verwijzing dus even leggen. Overigens is in mijn M365 al toe aan versie 16.0.

Het kan ook zonder die verwijzing, namelijk zo:
Code:
Dim MijnBestand As String

With Application.FileDialog(3)
    .Title = "Bestand selecteren"
    .InitialFileName = "D:\"
    .Filters.Clear
    .Filters.Add "CSV-bestanden", "*.CSV"
    .AllowMultiSelect = False
    If .Show <> 0 Then
        MijnBestand = .SelectedItems.Item(1)
    Else
        Exit Sub
    End If
End With


'Doe je ding met MijnBestand

Enne... om van zo veel mogelijk antwoorden gegarandeerd te blijven is het inderdaad wel netjes om geen vragen direct aan een deelnemer te stellen, maar aan de groep. Je opereert hier immers in een forum en iedereen is bereid een steentje bij te dragen. Maar als iemand zich uitgesloten voelt zal hij (m/v/x) afhaken en mis je misschien waardevolle tips.
 
Waarom een volledig bericht gequoot? Nota bene ook nog met (daardoor lelijke) code?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan