[AccessD] Automatic Update Function
Janet Erbach
jerbach.db at gmail.com
Tue Mar 10 09:24:27 CDT 2015
David -
I'm re-visiting your code because I'm having some problems with the vb
script I downloaded from ThatllDoIt.com. I know VERY little about vb - I
can understand the code, but that's about it. Your script is VB.Net - what
is the difference between that and a vbs script?
Thanks.
Janet
On Tue, Mar 3, 2015 at 12:31 PM, David McAfee <davidmcafee at gmail.com> wrote:
> Here's the old, VB.net version that I used for years (I also have a C#
> version if you prefer that)
>
> I basically name an .mdb/.adp something like MyDatabase126.mdb
> I create a text file and save it as the appName.ini (not .txt)
>
> I create two lines in the ini file:
>
> LatestVersion:MyDatabase126.mdb
> DeleteVersion:MyDatabase11*.mdb
>
>
> They launch the exe, which cecks to see if they already have the latest
> version on their computer, if not, copy it over.
> I use the wild card * on the delete version (rather than MyDatabase125.mdb)
> because a user might be out for a week or two and maybe you had several
> versions released.
>
> If you always want to copy the file over rather than check if the file is
> different, comment the third IF statement.
>
> It makes it real nice at work to deploy an adp/mdb to a user, even a new
> user.
> Just copy the .exe to their desktop and let them run it.
>
> It also keeps the honest people honest. They are launching an exe, not an
> mdb, so there isn't an mdb they can copy.
> If you have an icon for the exe, a splash screen for the mdb and do the
> shift start prevention, they might not even know that they are running an
> access mdb.
> It copies the mdb over to their local app data folder, so unless they know
> where to look, they won't find it.
> As long as they have rights to the shared folder and don't have to have it
> mapped, they wont know where the source files are.
> They would need to have Access already installed.
>
> Anyway, here is my launcher:
>
>
>
>
> Imports System.IO
> Imports System.Environment
>
> Module Module1
> Sub Main()
> Dim OldVersion As String = ""
> Dim NewVersion As String = ""
> Dim AppName As String = ""
> Dim NetPath As String =
> "\\YourServerNameHere\YourSharedFolderHere$\" + AppName + "\"
> Dim iniFileName As String = AppName + ".ini"
> Dim LocPath As String =
>
> System.Environment.GetFolderPath(SpecialFolder.LocalApplicationData).ToString
> + "\YourCompanyNameHere\" + AppName + "\"
> 'Open ini file and read it, to get new version name:
> Dim oRead As System.IO.StreamReader
> Dim LineIn As String
> oRead = File.OpenText(NetPath + iniFileName)
> While oRead.Peek <> -1
> LineIn = oRead.ReadLine()
> If Left(LineIn, 14) = "LatestVersion:" Then
> NewVersion = Right(LineIn, LineIn.Length - 14)
> ElseIf Left(LineIn, 14) = "DeleteVersion:" Then
> OldVersion = Right(LineIn, LineIn.Length - 14)
> Else
> LineIn = ""
> End If
> End While
> oRead.Close()
>
> If Directory.Exists(NetPath) Then 'If the network path exists,
> continue with the local path checks
> If Directory.Exists(LocPath) Then 'if the local path exists
> then check for the actual file
> If Not File.Exists(LocPath + NewVersion) Then 'Check to see
> if the new file is already installed
> File.Copy(NetPath + NewVersion, LocPath + NewVersion)
> 'If NOT, copy the file :)
> End If
> Else 'Directory did not exist, so create it and copy new file
> over
> Directory.CreateDirectory(LocPath)
> File.Copy(NetPath + NewVersion, LocPath + NewVersion)
> End If
>
> 'If the new file exists on local computer, start the new
> version on the local PC
> 'The IF statement is just added security, there really
> shouldn't be a reason for it not to exist at this point
> If File.Exists(LocPath + NewVersion) Then
> System.Diagnostics.Process.Start(LocPath + NewVersion)
> 'Start the file
>
> If OldVersion <> "" Then 'Delete old file(s)
> For Each FileFound As String In
> Directory.GetFiles(LocPath, OldVersion)
> File.Delete(FileFound)
> Next
> End If
> Else
> 'If not found, alert the user
> MsgBox("Cannot find " & LocPath & NewVersion & ".",
> vbOKOnly, "unable to start " + AppName)
> End If
>
>
> Else 'The network path was unavailable, so alert the user
> MsgBox("Network path: " + NetPath + " is unavailable", ,
> "Unable to start " + AppName)
> End If
> End Sub
> End Module
> --
> 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