Hewson, Jim
JHewson at nciinc.com
Wed Feb 11 08:18:37 CST 2009
John, I have an Access 2003 database that uses A2007 runtime on a client's machine. The data store is located on the client's C:\ Drive so any changes made to the data store needs to be done through the front end. I use a function called from a Module... I still haven't wrapped my head around a class. When I modify the front end the links to the tables are created before I place a new copy on the client's machine. Therefore all I need to do is "relink" the tables. Here it is - HTH... Function UpdateTable() Dim dbRemote As Database Dim db As Database Dim tDef As TableDef Dim tdefs As TableDefs Dim strFileName As String strFileName = "C:\DiaconateDatabase\DiaconateData.mdb" Set dbRemote = OpenDatabase(strFileName) dbRemote.Execute "CREATE TABLE tblConEdGroups (ConEdGroupID AutoIncrement, ConEdGroup Text(50), MaxPerYr Single, CONSTRAINT tblConEdGroups_PK PRIMARY KEY(ConEdGroupID));" dbRemote.Execute "CREATE TABLE tblConEdQualifiers (ConEdQualifierID AutoIncrement, ConEdGroupID Long, ConEd Text(50), ConEdQualifier Single, ConEdUnits Text(50), ConEdPoints Single, Ordinal Single, CONSTRAINT tblConEdQualifiers_PK PRIMARY KEY(ConEdQualifierID));" dbRemote.Execute "CREATE TABLE tblConEdReq (ConEdReqID AutoIncrement, Year Long, Requirements Single, CONSTRAINT tblConEdReq_PK PRIMARY KEY(ConEdReqID));" dbRemote.Execute "CREATE TABLE tblContinuingEducation (ConEdID AutoIncrement, DeaconID Long, DateCompleted DateTime, Title Text(50), Location Text(50), ConEdQualifierID Long, Qualifier Single, CONSTRAINT tblContinuingEducation_PK PRIMARY KEY(ConEdID));" dbRemote.Execute "CREATE TABLE tblDuties (DutyID Long, Duty Text(50), Ordinal Single, CONSTRAINT tblDuties_PK PRIMARY KEY(DutyID));" dbRemote.Execute "CREATE TABLE tblParishDuties (ParishDutiesID Long, ParishID Long, DutyID Long, CONSTRAINT tblParishDuties_PK PRIMARY KEY(ParishDutiesID));" 'Add Field -- BIT equals Yes/No dbRemote.Execute "ALTER TABLE tblDeacon ADD COLUMN OrdinationYear Text(10);" dbRemote.Execute "ALTER TABLE tblDeacon ADD COLUMN BackgroundCheck DateTime;" dbRemote.Execute "ALTER TABLE tblDeanery ADD COLUMN DeaconID Long;" dbRemote.Execute "ALTER TABLE tblParish ADD COLUMN DeaconsNeeded Byte;" dbRemote.Execute "ALTER TABLE tblParish ADD COLUMN FutureDeacons Byte;" 'Delete Field ' dbRemote.Execute "ALTER TABLE tblDeacon DROP COLUMN WPhoneExtension;" ' dbRemote.Execute "DROP INDEX PastorID ON tblParish" 'Change the type or size of a field ' dbRemote.Execute "ALTER TABLE tblDeacon ALTER COLUMN MyField TEXT(100);" 'DROP Table - delete table no longer used ' dbRemote.Execute "DROP Table tblSurvey" dbRemote.Close Set db = CurrentDb Set tdefs = db.TableDefs 'relink tables For Each tDef In tdefs If tDef.SourceTableName <> "" Then 'If the table source is other than a base table tDef.Connect = ";Database=" & strFileName tDef.RefreshLink 'refresh link End If Next Set dbRemote = Nothing 'update queries. DoCmd.SetWarnings False DoCmd.OpenQuery "zUpdateConEdGroupsFields" DoCmd.OpenQuery "zUpdateConEdQualifiersFields" DoCmd.OpenQuery "zUpdateConEdReqFields" DoCmd.OpenQuery "zUpdateContinuingEducationFields" DoCmd.SetWarnings True ' End Function Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Wednesday, February 11, 2009 7:43 AM To: Access Developers discussion and problem solving Subject: [AccessD] Build tables programatically For the class lecture it would be handy to be able to build Access tables programatically. I do not know how to do this, though the authors of books usually do so. Does anyone on this list have any code library that would allow me to create field X with data type Y, that is a PK etc etc. Having that, I can build append queries to append specific data into these tables, but if anyone has such a thing, code to extract actual data from a table and write the SQL Statements that would append that into a specific table would be nice. IOW (for example) I have an existing state table and an agency table with a state ID. In order to minimize the impact on the readers having to go manually create a state and agency table and manually input data into those tables, it would be nice to provide code that builds those two tables and then populates those tables with a few data elements. Ideas anyone? -- John W. Colby www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com ################################################################################ If you have received this message in error, please contact the sender immediately and be aware that the use, copying, or dissemination of this information is prohibited. This email transmission contains information from NCI Information Systems, Inc. that may be considered privileged or confidential and is intended solely for the named recipient. ################################################################################