RE: Using query values for field name in table
- From: "'69 Camaro" <ForwardZERO_SPAM.To.69Camaro@xxxxxxxxxxxxxxxxxxxxxx>
- Date: Wed, 19 Oct 2005 16:02:01 -0700
> Is it even appropriate to call it a "field"? Whereas a field is a
> field in a table. And knowing that, how does one extract its value?
Please see the following example for the answers to these questions.
qryProcSpecImport is expected to be a query in the current database, and
tblProcedures will be created in the current database. The table will have
fields with Text data types, will be required, and will not allow zero length
strings. You may alter this example to meet your needs, but as you can see,
the field name is assigned at creation, allong with the data type and size.
The fields properties can also be set in the following code:
Public Sub CreateTableDefX()
On Error GoTo ErrHandler
Dim dbsGeneralThoracic As Database
Dim recSet As DAO.Recordset
Dim tdfNew As TableDef
Dim fldName As DAO.Field
Dim recno As Long
Dim fOpenedDB As Boolean
Dim fOpenedRecSet As Boolean
Set dbsGeneralThoracic = CurrentDb
fOpenedDB = True
Set recSet = CurrentDb().OpenRecordset("qryProcSpecImport")
fOpenedRecSet = True
' Create a new TableDef object.
Set tdfNew = dbsGeneralThoracic.CreateTableDef("tblProcedures")
If (Not (recSet.BOF And recSet.EOF)) Then
recSet.MoveLast
recSet.MoveFirst
For recno = 1 To recSet.RecordCount
Set fldName = tdfNew.CreateField(recSet.Fields("Proc").Value,
dbText, 25)
tdfNew.Fields.Append fldName
fldName.Properties("Required").Value = True
fldName.Properties("AllowZeroLength").Value = False
If (Not (recSet.EOF)) Then
recSet.MoveNext
End If
Next recno
End If
dbsGeneralThoracic.TableDefs.Append tdfNew
CleanUp:
Set fldName = Nothing
Set tdfNew = Nothing
If (fOpenedRecSet) Then
recSet.Close
fOpenedRecSet = False
End If
Set recSet = Nothing
If (fOpenedDB) Then
dbsGeneralThoracic.Close
fOpenedDB = False
End If
Set dbsGeneralThoracic = Nothing
Exit Sub
ErrHandler:
MsgBox "Error in CreateTableDefX( )." & vbCrLf & vbCrLf & _
"Error #" & Err.Number & vbCrLf & vbCrLf & Err.Description
Err.Clear
GoTo CleanUp
End Sub
HTH.
Gunny
See http://www.QBuilt.com for all your database needs.
See http://www.Access.QBuilt.com for Microsoft Access tips.
(Please remove ZERO_SPAM from my reply E-mail address so that a message will
be forwarded to me.)
- - -
If my answer has helped you, please sign in and answer yes to the question
"Did this post answer your question?" at the bottom of the message, which
adds your question and the answers to the database of answers. Remember that
questions answered the quickest are often from those who have a history of
rewarding the contributors who have taken the time to answer questions
correctly.
"Rocky" wrote:
> Hi, 69 Camaro,
> Tx.
> "Proc" is a caption given to acalculated field in the query
> "qryProcSpecImport".
> That is the crux of my problem, what are the properties of a field in a
> query? Is it even appropriate to call it a "field"? Whereas a field is a
> field in a table. And knowing that, how does one extract its value? I
> realize I'm not talking in computerese, so I'm sorry if the concepts I'm
> discussing are confusing.
> And then, should fldName be defined as a string variable which I can then
> use to insert as a fieldname, or are there specific qualities of a variable
> defined as a "field" which I need to maintain?
> Rocky
>
> "'69 Camaro" wrote:
>
> > Hi, Rocky.
> >
> > Proc has not been defined as a DAO.Field object type and, unless it's a
> > global variable or module-level variable and you've assigned it a value
> > outside of this procedure, it hasn't been initialized before being assigned
> > to the "fldName" Field, which will present another problem after you fix
> > Proc's object type.
> >
> > If you haven't set Option Explicit in your modules (which appears to be the
> > case), then Proc is a Variant.
> >
> > HTH.
> > Gunny
> >
> > See http://www.QBuilt.com for all your database needs.
> > See http://www.Access.QBuilt.com for Microsoft Access tips.
> >
> > (Please remove ZERO_SPAM from my reply E-mail address so that a message will
> > be forwarded to me.)
> > - - -
> > If my answer has helped you, please sign in and answer yes to the question
> > "Did this post answer your question?" at the bottom of the message, which
> > adds your question and the answers to the database of answers. Remember that
> > questions answered the quickest are often from those who have a history of
> > rewarding the contributors who have taken the time to answer questions
> > correctly.
> >
> >
> > "Rocky" wrote:
> >
> > > I have a long list of numbers and names which I imported from a .pdf file.
> > > In the .pdf file they were a single string. After stripping off unprintable
> > > characters and separating the numbers and names with a query, I want to use
> > > each name for a field name in a separate table. My problem is getting the
> > > code to find the field in the query (a calculated value) and store the value
> > > to a variable which I can then use as a field name. Following is the code:
> > > Sub CreateTableDefX()
> > >
> > > Dim dbsGeneralThoracic As Database
> > > Dim tdfNew As TableDef
> > > Dim prpLoop As Property
> > > Dim fldName As Field
> > >
> > > Dim recno As Long
> > > Set dbsGeneralThoracic = CurrentDb
> > >
> > > Set dbsGeneralThoracic = OpenDatabase("I:\Database\Thoracic
> > > database\General Thoracic.mdb")
> > > DoCmd.OpenQuery "qryProcSpecImport"
> > >
> > > ' Create a new TableDef object.
> > > Set tdfNew = dbsGeneralThoracic.CreateTableDef("tblProcedures")
> > > recno = 1
> > >
> > > Do While recno < 125
> > > DoCmd.GoToRecord acDataQuery, "qryProcSpecImport", acNext, recno
> > >
> > > Set fldName = Proc
> > >
> > > On the last line above is where I get the error message, "Compile error:
> > > type mismatch"
> > >
> > > Help!
.
- Follow-Ups:
- RE: Using query values for field name in table
- From: Rocky
- RE: Using query values for field name in table
- References:
- RE: Using query values for field name in table
- From: Rocky
- RE: Using query values for field name in table
- Prev by Date: RE: Using query values for field name in table
- Next by Date: Re: Easy ADO database update question
- Previous by thread: RE: Using query values for field name in table
- Next by thread: RE: Using query values for field name in table
- Index(es):
Relevant Pages
|
Loading