Welkom op het forum van startpagina!

Dit forum staat op alleen-lezen. Je kan hier informatie zoeken en oude berichten terugvinden, maar geen nieuwe berichten plaatsen.

Naar overzicht van alle forums

Export “print” bestand

  • Fred

    Met een stukje vba wil ik “orders” exporten naar een EPR systeem , deze pakt ze dan op en verwerkt deze, het zijn txt bestandjes. Het is de bedoeling dat van uit een(1) tabel allemaal div txt bestandjes worden gemaakt.

    De orders worden netjes met een macro gegenereerd en vervolgens met een for , next herhaald

    Tussen de for next staat de opdracht om het txt bestand te genereren

    De code loopt goed maar alleen de output cumuleert.

    Txt (1) = aa

    Txt(2) = txt1 &bb

    Txt(3) = txt(1)&Txt(2)& cc,

    Enz,

    Er wordt dus niet elke keer een nieuw bestand geschreven maar er wordt steeds bij geschreven.

    Wat doe ik verkeerd ?

    Fred

    Dim Bestnm As String

    Dim expName As String, sRegel As String

    aantalrecords = DCount(“debi”, “orde_bestel_regels” )

    On Error GoTo ExportHT_err

    For a = 1 To aantalrecords

    Bestnm = Me.naam

    'expName = “\\150.20.0.20\APPS\DR_Orders\orderp ” & Bestnm & “.txt”

    expName = “c:\order\orderp ” & Bestnm & “.txt”

    DoCmd.RunMacro “mcr_mk_order_start”

    With CurrentDb.OpenRecordset(“ordepbroodq” )

    MoveFirst

    If .BOF And .EOF Then Exit Sub

    Do While Not .EOF

    sRegel = sRegel & .Fields(“regel” )

    .MoveNext

    Loop

    End With

    Open expName For Output Lock Read Write As #1

    Print #1, sRegel

    ExportHT_exit:

    Close #1

    DoCmd.GoToRecord , , acNext

    Next a

    Exit Sub

    ExportHT_err:

    MsgBox Err.Description

    On Error Resume Next

    Resume ExportHT_exit

    End Sub

  • JaapTon

    Fred,

    Ik heb deze code heel vluchtig bekeken, maar dit kan niet:

    If .BOF And .EOF Then Exit Sub

    Dit moet OR zijn.

    Succes.

  • Fred

    Jaap Ton,

    bedankt voor je reactie , helaas het vervangen van AND door OR mocht niet baten.

    Ik heb er nu voor gekozen elke record set uniek te maken, in de regel

    With CurrentDb.OpenRecordset(“ordepbroodq” ) wordt “ ordepbroodq” dan, orderpbrood_aaaa , orderpbrood_bbbb, enz

    het is dan wel even werk en extra onderhoud maar het werkt dan wel .

    Nog maals bedankt.

    Grt,

    Fred

  • JaapTon

    Fred,

    Dat is mooi!

    Indien er problemen zijn, geef dan in een zip-file een kleine test-database dan kijk ik er verder naar.