Jeanine Scott
jscott at mchsi.com
Fri Feb 7 10:43:43 CST 2003
I happened to run across this today when I was looking for something else. I found it at http://www.mvps.org/access/tables/tbl0016.htm. Maybe it will help? To create the field using VBA and DAO, you can use this function. ' ********* Code Start *********** ' This code was originally written by Dev Ashish ' It is not to be altered or distributed, ' except as part of an application. ' You are free to use it in any application, ' provided the copyright notice is left unchanged. ' ' Code Courtesy of ' Dev Ashish ' Function fCreateAutoNumberField( _ ByVal strTableName As String, _ ByVal strFieldName As String) _ As Boolean ' ' Creates an Autonumber field with name=strFieldName ' in table strTableName. ' Accepts ' strTableName: Name of table in which to create the field ' strFieldName: Name of the new field ' Returns True on success, false otherwise ' On Error GoTo ErrHandler Dim db As DAO.Database Dim fld As DAO.Field Dim tdf As DAO.TableDef Set db = Application.CurrentDb Set tdf = db.TableDefs(strTableName) ' First create a field with datatype = Long Integer Set fld = tdf.CreateField(strFieldName, dbLong) With fld ' Appending dbAutoIncrField to Attributes ' tells Jet that it's an Autonumber field .Attributes = .Attributes Or dbAutoIncrField End With With tdf.Fields .Append fld .Refresh End With fCreateAutoNumberField = True ExitHere: Set fld = Nothing Set tdf = Nothing Set db = Nothing Exit Function ErrHandler: fCreateAutoNumberField = False With Err MsgBox "Error " & .Number & vbCrLf & .Description, _ vbOKOnly Or vbCritical, "CreateAutonumberField" End With Resume ExitHere End Function ' ********* Code End *********** Jeanine Scott Sr. Systems Analyst Spindustry Systems 515-669-2074 jscott at spindustry.com CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure, or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message including any attachments. -----Original Message----- From: accessd-admin at databaseadvisors.com [mailto:accessd-admin at databaseadvisors.com]On Behalf Of Jim Dettman Sent: Friday, February 07, 2003 10:34 AM To: accessd at databaseadvisors.com Subject: RE: [AccessD] Acc97: Creating GUID Autonumber using VBA code... Shamil, I answered a question on this on experts exchange a while back. I'm trying to remember.. It was some kind of bug and the field needed to be created in a very specific way. I'll see if I can dig it out. Jim Dettman President, Online Computer Services of WNY, Inc. (315) 699-3443 jimdettman at earthlink.net -----Original Message----- From: accessd-admin at databaseadvisors.com [mailto:accessd-admin at databaseadvisors.com]On Behalf Of Shamil Salakhetdinov Sent: Friday, February 07, 2003 9:15 AM To: AccessD Subject: [AccessD] Acc97: Creating GUID Autonumber using VBA code... Hi All, Is the subj described somewhere? Should I RTFM with more attention and accuracy? The following code doesn't produce desired result: Dim dbs As DAO.Database Dim tdf As DAO.TableDef Dim fld As DAO.Field Set dbs = CurrentDb Set tdf = dbs.TableDefs("tblTest") Set fld = tdf.CreateField("fldTest", dbGUID, 16) fld.Properties("DefaultValue") = "GenGUID()" tdf.Fields.Append fld dbAutoIncrField value for Attributes property can't be used at all producing error 3001 - Invalid argument Any solutions? TIA, Shamil -- e-mail: shamil at smsconsulting.spb.ru Web: http://www.smsconsulting.spb.ru/shamil_s _______________________________________________ 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