[AccessD] Change to a Different Excel WorkSheet via Access VBACode

Charlotte Foust charlotte.foust at gmail.com
Fri Jul 27 21:34:44 CDT 2012


Brad,

You're confusing links with local tables.  Deleting and adding local tables
causes bloat, as does running queries, and a bunch of other actions
required along the way.

Charlotte

On Fri, Jul 27, 2012 at 7:54 AM, Brad Marks <BradM at blackforestltd.com>wrote:

> Charlotte,
>
> Thanks for your insights into Access Links.
>
> I do not have the experience with Access that you and the others here on
> AccessD have.
>
> When I first started working with Access, I believe that I read something
> about the dangers of deleting and re-adding tables.  I can't remember the
> details but I have been a bit concerned about this approach.
>
> Maybe there is nothing to worry about when doing this.
>
> Thanks again,
> Brad
>
>
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com on behalf of Charlotte Foust
> Sent: Fri 7/27/2012 9:40 AM
> To: Access Developers discussion and problem solving
> Subject: Re: [AccessD] Change to a Different Excel WorkSheet via Access
> VBACode
>
> Access isn't that flexible.  Links are kind of a special situation where
> you have to replace a link, you can't just edit it.
>
> Charlotte
>
> On Fri, Jul 27, 2012 at 7:33 AM, Brad Marks <BradM at blackforestltd.com
> >wrote:
>
> > Gustav,
> >
> > Thanks for your assistance.
> >
> > With the sample code that you shared, I now have a method to change the
> > Excel "Sheet" from Sheet1 to Sheet2 to Sheet3, etc.
> >
> > This method currently deletes the Linked Table with the old sheet name
> and
> > then re-adds the Linked Table with the new sheet name.
> >
> > This works, but I have some concern about using a Delete and Re-add over
> > and over again.
> >
> > Is there a way to simply change the Sheet name without needing to Delete
> > and Re-add the Linked Table?
> >
> > Thanks,
> > Brad
> >
> >
> >
> > -----Original Message-----
> > From: accessd-bounces at databaseadvisors.com on behalf of Gustav Brock
> > Sent: Fri 7/27/2012 4:38 AM
> > To: accessd at databaseadvisors.com
> > Subject: Re: [AccessD] Change to a Different Excel WorkSheet viaAccess
> >  VBACode
> >
> > Hi Brad
> >
> > What confuses you is that an Excel file is not a table but a database.
> > Further, as you are not referencing a Named Range (as noted by Charlotte
> > and my favourite feature of Excel to recomend) but a WorkSheet, the table
> > name is the WorkSheet name postfixed a $-sign.
> >
> > Thus the example goes:
> >
> > <code>
> > Public Sub AttachExcel()
> >
> >     Dim dbs         As DAO.Database
> >     Dim tdfLinked   As DAO.TableDef
> >     Dim strConnect  As String
> >     Dim strTblName  As String
> >
> >     Set dbs = CurrentDb
> >     strConnect = "Excel 8.0;DATABASE=" & "d:\folder\file.xls"
> >     strTblName = "SomeSheetName$"
> >
> >     Set tdfLinked = dbs.CreateTableDef("xlsSomeSheetName")
> >     tdfLinked.Connect = strConnect
> >     tdfLinked.SourceTableName = strTblName
> >     dbs.TableDefs.Append tdfLinked
> >
> > End Sub
> > </code>
> >
> > /gustav
> >
> >
> > >>> BradM at blackforestltd.com 27-07-12 3:04 >>>
> > Rocky, Jim, Mark, Darryl,
> >
> > Thanks for the assistance.  I don't think that I explained what I am
> > trying to do very well in my earlier post.
> >
> > I have a test Access application that has a "Linked Table" (an Excel
> file)
> > named ExcelFile.
> >
> > This Excel file has multiple WorkSheets - Sheet1, Sheet2. (Jan, Feb, Mar,
> > Apr, etc. in the "real" system)
> >
> > When I established the Linked Table, I had to tell Access which
> work-sheet
> > to point at.  I chose Sheet1.
> >
> > Now, I would like to change this setting from Sheet1 to Sheet2 (Jan to
> Feb
> > in the real system).
> >
> > Below is some code that I have that changes the Table Def for the table
> > named "ExcelFile".  This code works nicely for changing the name of the
> > entire Excel File (Test1.xlsx to Test2.xlsx for example.)
> >
> > What I would like to be able to do with such code is to change from
> Sheet1
> > to Sheet2 (within Test1.xlsx).
> >
> > I have done quite a bit of digging and experimenting.
> >
> > Is this possible with a Linked Table?  If not, I may need to switch from
> a
> > Linked Table to using a different approach for obtaining this data.
> >
> > Thanks,
> > Brad
> >
> >
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >
> > Sub Update_Table_Def()
> >
> > Dim db As DAO.Database
> > Dim tdf As DAO.TableDef
> >
> > Set db = CurrentDb()
> > Set tdf = db.TableDefs!ExcelFile
> >
> > tdf.Connect = "Excel 12.0
> > Xml;HDR=NO;IMEX=2;ACCDB=YES;DATABASE=C:\Test1.xlsx"
> >
> > tdf.RefreshLink
> >
> > Set tdf = Nothing
> > Set db = Nothing
> >
> > End Sub
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >
> >
> > --
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/accessd
>
>
> >
> >
> > Website: http://www.databaseadvisors.com
>
>
> >
> >
> >
> > --
> > This message has been scanned for viruses and
> > dangerous content by MailScanner, and is
> > believed to be clean.
> >
> >
> >
> > --
> > 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
>
>
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
>
>
>
> --
> 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