Dear A.D.Tejpal:  Thanks very much!  I just downloaded this file and 
I'll be reviewing it this afternoon.  :  <  )

Regards,
Patty

--- In [email protected], "A.D.Tejpal" <[EMAIL PROTECTED]> 
wrote:
> Patty,
> 
>     Sample db named SubFormDynamicFields_2K.zip, uploaded to files 
section of this group, should also be able to give you some working 
ideas. It needs reference to DAO 3.6.
> 
>     On opening the main form, it grabs the names of all available 
tables and queries, and loads them in the row-source for the combo 
box. At this stage the main subform has five columns on display, all 
unbound, with generic headings. There is no record-source yet, for 
the subform.
> 
>     As soon as a source table or query is selected in the combo 
box, the subform at right (serving as field list), gets populated 
with  names of fields in the selected table/query. Out of these, the 
user can click the check boxes for selecting the fields required to 
be loaded in the main subform.
> 
>     On clicking the update button, the subform gets loaded with 
appropriate record-source and the controls get bound to  respective 
fields. The columns are displayed in proper order, with headings 
matching the field names. If the number of fields selected in the 
field list is less than the number of controls available, the unused 
columns remain unbound and get hidden. Widths of displayed columns 
get adjusted automatically, so as to match the overall width of 
subform control.
> 
>     Some interesting peculiarities of datasheets are observed to 
be -
>     (a) Column Headings -
>             So long as captive labels are available, the column 
headings are governed by captions of these labels, over-ruling the 
names of respective controls. If the labels are eliminated (as done 
in the sample db), the column headings are governed by names of 
relevant controls.
>     (b) Column Order -
>             For ensuring desired relative positioning of columns 
subjected to repeated manipulation, TabIndex property alone is not 
found adequate. ColumnOrder property also needs to be explicitly 
assigned. While TabIndex values are zero based (0 for first column), 
ColumnOrder values commence at 2 (2 for first column).
> 
> Best wishes,
> A.D.Tejpal 
> 
>   ----- Original Message ----- 
>   From: Patty 
>   To: [email protected] 
>   Sent: Saturday, June 11, 2005 05:53
>   Subject: [AccessDevelopers] Error w/ dynamic Form using Datasheet 
View
> 
> 
>   In my parent form, I have two child subforms as follows: 1 is the 
subform employee header; it defaults to single form view. The second 
is the subform hours; it defaults to datasheet view and contains 
hours-worked detail. 
>   Using datasheet view allows (1) user to use built-in Access 
functionality to hide/unhide columns at will, and (2) 
>   supposedly: when the dynamic query (qryHeadings) linked to the 
datasheet subform changes to include new column headings / columns, 
then those new column headings/columns would refresh the linked 
subform datasheet the next time that subform was opened. 
>   I set up the design to do this as follows: SQL brings in 
different fields depending on the contents of a table. This table 
doesn't change often, but when it does, it can pull new fields with 
new column headings. Here is the VBA code that refreshes my 
qryHeadings:
> 
> 
>   Function test()
>   Dim dbs As Database
>   Dim qdf As QueryDef
> 
>   Dim rst As Recordset
>   Dim strQuery As String
>   Dim strSQL As String
>   Dim Frst As Integer
>   Set dbs = CurrentDb()
>   Set qdf = dbs.QueryDefs("qryHeading")
> 
>   Frst = 1
> 
>   strSQL = "SELECT FieldName, FieldLabel FROM tblColOrder " & _
>   "WHERE (((tblColOrder.Active) = Yes)) ORDER BY tblColOrder.Seq;"
> 
>   Set rst = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
> 
>   rst.MoveFirst
> 
>   strQuery = "select "
> 
>   Do While Not rst.EOF
>   If Frst <> 1 Then
>   strQuery = strQuery & ", "
>   Else
>   Frst = 0
>   End If
> 
>   strQuery = strQuery & rst("FieldName").Value & " as [" & rst
>   ("FieldLabel").Value & "] "
>   rst.MoveNext
>   Loop
> 
>   rst.Close
>   strQuery = strQuery & " from tblHours;"
> 
>   qdf.SQL = strQuery
> 
>   End Function
> 
>   Using the above with the below code (to impact the form itself) 
works 
>   beautifully when I view my subform in 'continous-form' or 'single-
>   form' form view. However, when I use that solution and view my 
>   subform in 'datasheet' form view, I see the correct fields in the 
>   correct location yet the field headings (aka column headings), 
oddly 
>   enough, display txtData1, txtData2, etc. regardless of what I 
place 
>   in textbox name, or label name, or label caption, or even if I 
>   eliminate label name altogether. It appears that datasheet form 
view 
>   picks up what is placed in each textbox controlsource, which in 
my 
>   case is, literally =[txtData1], =[txtData2] etc., and uses the 
>   nonbracketed portion as the column/field heading for the 
appropriate 
>   field. Can someone comment on how to resolve the datasheet view 
>   problem? 
> 
>   Private Sub Form_Load()
>   Dim fld As DAO.Field
>   Dim intField As Integer
> 
>   intField = 1
>   For Each fld In Me.Recordset.Fields
>   Me.Controls("txtData" & intField).ControlSource = fld.Name
>   Me.Controls("txtData" & intField).Visible = True
>   Me.Controls("lblData" & intField).Caption = fld.Name
>   Me.Controls("lblData" & intField).Visible = True
>   intField = intField + 1
>   Next
> 
>   For intField = intField To 25 
>   Me.Controls("txtData" & intField).Visible = False
>   Me.Controls("lblData" & intField).Visible = False
>   Next
> 
>   End Sub
> 
>   PLEASE NOTE:  When I inserted this code as a solution <Me.Controls
>   ("txtData" & intField).Name = fld.Name>, I received the following 
>   Visual Basic dialogue box error message: 
> 
>   <Run-time error '2136': To set this property, open the form or 
report 
>   in Design view.>
> 
>   Thanks for any assistance!  Patty





Please zip all files prior to uploading to Files section. 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/AccessDevelopers/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to