[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