[AccessD] A2003: Merging top 50 files then next 50 files andsoon

Darren D darren at activebilling.com.au
Thu Aug 7 23:21:19 CDT 2008


Thanks for the reply

Apologies - I have taken the asterix (sic) out of the combo and have added it to
the string so...
strFile = Dir$(Me.txtFolder & "\*." & Me.cmbFileTypes) is correct

MMM - Ok - I'll have to experiment some more - many many thanks for your help on
this - And all this was air code...showoff - I'm jealous

Have a great day
 
Darren

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan
Sent: Friday, 8 August 2008 9:15 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] A2003: Merging top 50 files then next 50 files andsoon

If me.cmbFileTypes really does contain "*.XML" and not just "XML" then you need
to change 
strFile = Dir$(Me.txtFolder & "\*." & Me.cmbFileTypes) 
to 
strFile = Dir$(Me.txtFolder & "\" & Me.cmbFileTypes)  

I don't see anything wrong with the "strFile = Dir$"

Cheers,
Stuart


On 7 Aug 2008 at 17:10, Darren D wrote:

> Howdy
> 
> Thanks for the reply- I kinda did that by use of a UI
> 
> Code below - maybe you can spot an error in it
> 
> I have a number of unbound text boxes on the form
> 
> Me.txtFolder - Usually populated with a path = EG N:\test\Myfolder
> Me.txtMergedFileName - The merged file name (Defaults to 'MergedFile')
> Me.cmbFileTypes - What file types to go looking for (Defaults to *.XML)
> Me.txtCounterLimit - At what file count to start a new merged fie
> Me.cmbSuffix - Asks the user what suffix to put at the end of any merges
folder
> (options are 'XML' and 'txt')
> 
> '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> '<Code Start>
> Private Sub ps_CopyBlocks()
> 
> On Error Resume Next
> 
> Dim lngCounter As Long
> Dim lngFileCounter As Long
> Dim strFile As String
> Dim strMergeFile As String
> Dim strTemp
> 
> strMergeFile = Me.txtFolder & "\" & Me.txtMergedFileName & "_00." &
Me.cmbSuffix
> 
> Open strMergeFile For Output As #1
> 
> strFile = Dir$(Me.txtFolder & "\*." & Me.cmbFileTypes)
> 
> Do
>     Open strFile For Input As #2
>     While Not EOF(2)
>         Line Input #2, strTemp
>         Print #1, strTemp
>     Wend
>     Close #2
>     
>     lngCounter = lngCounter + 1
>         If lngCounter = Me.txtCounterLimit Then
>         	lngFileCounter = lngFileCounter + 1
>             lngCounter = 0
>         	Close #1
>         	strMergeFile = Me.txtFolder & "\" & Me.txtMergedFileName & "_" &
> Format(lngFileCounter, "00" & "." & Me.cmbSuffix)
>             Open strMergeFile For Output As #1
>         End If
> 
> strFile = Dir$ '<--me thinks the error maybe here
> 
> Loop Until strFile = ""
> 
> Close #1
> 
> End Sub
> '</Code Start>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan
> Sent: Thursday, 7 August 2008 4:29 PM
> To: Access Developers discussion and problem solving
> Subject: Re: [AccessD] A2003: Merging top 50 files then next 50 files andsoon
> 
> Open an Immediate window in the any Access application (hit Ctrl+G)
> Enter "? CurDir"
> You will see that the default directory for an Access Application is "My
> Documents".
> (unless you change "Default database folder:" under "Tools-Options-General"
> 
> You can do one of two things:
> 
> 1. Initally use CHDIR to change the directory 
> 2.  Put the path in front of the relevant code.
> 
> 
> I prefer to use the second method.
> If you want to run in the directory that the Access application is in, make
the
> following 
> changes:
> 
> Change: strMergeFile = "MergeFile00.txt"
> To: strMergeFile = CurrentProject.Path & "\MergeFile00.txt"
>  
> Change: strFile = Dir$("*.xml")
> To: strFile = "Dir$(Currentproject.Path & "\*.xml")
> 
> Change: strMergeFile = "MergeFile" & Format(lngFileCounter, "00" & ".txt")
> To: strMergeFile = CurrentProject.Path & "\MergeFile" & Format(lngFileCounter,
> "00" & ".txt")
> 
> 
> Cheers,
> Stuart
> 
> On 7 Aug 2008 at 14:51, Darren D wrote:
> 
> > Hi Stuart 
> > 
> > You are a legend this is way cool
> > 
> > Now, I have a strange issue with this. When I drop say 20 or 30 xml files in
> the
> > My Documents folder and run the dB, from My Documents as well, it runs
lovely
> > 
> > Drop those same XML into another folder and the dB into that same folder it
> > seems to get stuck in some monstrous loop that never ends and the new
> > destination merge file just grows and grows and does not stop until I do a 3
> > finger salute
> > 
> > Any reason why it would work in the My Documents folder and not in another
> > folder?
> > 
> > Many thanks
> >  
> > Darren
> > -----Original Message-----
> > From: accessd-bounces at databaseadvisors.com
> > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan
> > Sent: Wednesday, 6 August 2008 8:06 AM
> > To: Access Developers discussion and problem solving
> > Subject: Re: [AccessD] A2003: Merging top 50 files then next 50 files
andsoon
> > 
> > Yep, another ommission on my part ( I did warn you <g>)
> > 
> > You need to do a 
> > Close #1 
> > after
> > Loop Until strFile = ""
> > to close the last merge file.
> > 
> > It's not using any objects, so there is no need to do anything else.
> > 
> > 
> > 
> > On 5 Aug 2008 at 15:22, Darren D wrote:
> > 
> > > 
> > > Stuart - Fantastic
> > > 
> > > Works an absolute treat many many thanks - you are a legend
> > > 
> > > What is the standard code bits to get it to release the file whilst the dB
> is
> > > open? I also assume there are objects to be closed or set to nothing -
yes?
> > > 
> > > Code working nicely below
> > > 
> > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > Private Sub ps_CopyBlocks()
> > > 
> > > On Error Resume Next
> > > 
> > > Dim lngCounter As Long
> > > Dim lngFileCounter As Long
> > > Dim strFile As String
> > > Dim strMergeFile As String
> > > 
> > > strMergeFile = "MergeFile00.txt"
> > > Open strMergeFile For Output As #1
> > > strFile = Dir$("*.xml")
> > > Do
> > >     Open strFile For Input As #2
> > >     While Not EOF(2)
> > >         Line Input #2, strtemp
> > >         Print #1, strtemp
> > >     Wend
> > >     Close #2
> > >     lngCounter = lngCounter + 1
> > >            If lngCounter = 10 Then
> > >         lngFileCounter = lngFileCounter + 1
> > >                 lngCounter = 0
> > >         Close #1
> > > strMergeFile = "MergeFile" & Format(lngFileCounter, "00" & ".txt")
> > >         Open strMergeFile For Output As #1
> > >            End If
> > >           strFile = Dir$
> > > Loop Until strFile = ""
> > > 
> > > End Sub
> > 
> > -- 
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
> > 
> > -- 
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
> 
> -- 
> Stuart Mclachlan
> 
> 
> -- 
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> 
> -- 
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com

-- 
Stuart Mclachlan


-- 
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com




More information about the AccessD mailing list