Vraag : Ik heb glitch met een vorm en combodozen

Ik houd hebbend vreemde glitch sinds ik mijn vorm rond veranderde. Mijn oorspronkelijk gegevensbestand was al gebaseerd venster. Één van deze vensters was voor het filtreren van een pre-gemaakt rapport. Het rapport wordt gefiltreerd door 3 combovakjes. De eerste bevolkt de tweede, wat beurtelings het derde bevolkt en de filter toepast. Goed sinds ik het ontwerp veranderde en enkele wegen voor de codes uitgaf, stelden mijn combodozen zich na u terug uitgezocht van de derde en definitieve doos. Bijvoorbeeld, als u eerst aan de vorm van de rapportgenerator navigeert en het rapport selecteert, te filtreren zal wat, en de filter het de filter toepassen en zal dan alle dozen ontruimen. Dan, als u probeert om een verschillende filter toe te passen, na het selecteren van het 3de punt maakt het terugstellen van 3 combodozen aan de laatste keuzen u. Het zal dit blijven de hele tijd doen. Hieronder is de originele code alvorens ik het herontwierp en volgende is code I momenteel use.
" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
expliciete Option Overheidsfunctie FieldType (TableName als Koord, Fieldname als Koord) als Geheel Schemerige strSQL als Koord, rs als DAO.Recordset 'Wijs variabelen toe strSQL = „SELECTEER [“ & Fieldname & „] VAN [“ & TableName & „] WAAR Vals“ strSQL = vervang (vervang (strSQL, „[[“, „[“), „]]“, „]“) Plaats rs = CurrentDb.OpenRecordset (strSQL, dbFailOnError) FieldType = rs. Gebieden (0). Type rs. Sluit Plaats rs = niets Beëindig Functie Privé SubbtnMainMenu_Click () Op Fout GoTo btnMainMenu_Click_Err DoCmd.OpenForm „Leiding“ DoCmd.Close acForm, „ReportGen“ btnMainMenu_Click_Exit: Sub van de uitgang btnMainMenu_Click_Err: MsgBox Error$ Hervat btnMainMenu_Click_Exit Beëindig Sub Privé SubbtnMainMenu_MouseDown (Knoop als Geheel, Verschuiving als Geheel, X zoals Enig, Y zoals Enig) Me.btnMainMenu.Visible = Vals Me.btnMainMenu2.Visible = Waar Sub van het eind Privé SubbtnMainMenu_MouseUp (Knoop als Geheel, Verschuiving als Geheel, X zoals Enig, Y zoals Enig) Me.btnMainMenu2.Visible = Vals Me.btnMainMenu.Visible = Waar Sub van het eind Privé SubcboReport_Change () Schemerige strReport als Koord 'Wijs variabelen toe strReport = Me.cboReport.Value 'Bevolkt cboField met opties op cboReport worden gebaseerd die. Me.cboField.RowSource = strReport Me.cboField.RowSourceType = de „Lijst van het Gebied“ Me.cboField.Value = "" Me.cboFilter.Value = "" Me.Refresh 'Deze verklaring vindt het geselecteerde punt in het combovakje en opent respectief 'rapport in het subgebied van het Rapport. Als IsNull (cboReport.Value) toen Me.subReport.SourceObject = "" Anders Als cboReport.Value = „Werknemer“ toen Me.subReport.SourceObject = „Report.rptEmployee“ Anders Me.subReport.SourceObject = „Report.rptInventory“ Eind als Eind als Sub van het eind Privé SubcboField_Change () Schemerige strReport als Koord, strField als Koord, strFilter als Koord 'Wijs variabelen toe strReport = Me.cboReport.Value strField = Me.cboField.Value strFilter = „UITGEZOCHTE verschillend“ & „[“ & strReport & „]“ & „.“ & „[“ & strField & „]“ & „VAN“ & „[“ & strReport & „]“ & „; “ 'Bevolkt cboFilter met opties op cboReport worden gebaseerd die en cboField. Me.cboFilter.RowSourceType = „Lijst/Vraag“ Me.cboFilter.RowSource = strFilter Me.cboFilter.Value = "" Me.Refresh Sub van het eind Privé SubcboFilter_Change () Schemerige strFilter als Koord, strApply als Koord, strReport als Koord, strField als Koord Schemerige intFieldType als Koord 'Wijs variabelen toe strReport = Me.cboReport.Value strField = Me.cboField.Value strFilter = Me.cboFilter.Value intFieldType = FieldType (strReport, strField) 'Pas geselecteerde filter op subReport toe Selecteer Geval intFieldType Geval dbBigInt, dbBoolean, dbByte, dbNumeric dbDouble dbCurrency, dbDecimal, dbFloat, dbInteger, dbLong, strApply = „[“ & strField & „] =“ & strFilter dbChar geval, dbText, dbMemo strApply = „[“ & strField & „] = """ & strFilter & """" Geval dbDate, dbTime strApply = „[“ & strField & „] = #“ & strFilter & „#“ Geval anders MsgBox „Onverwacht gegevenstype =“ & intFieldType strApply = "" Uitgezocht eind Me.subReport.Report.Filter = strApply Me.subReport.Report.FilterOn = (strApply <> "") Sub van het eind
" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
expliciete Option Overheidsfunctie FieldType (TableName als Koord, Fieldname als Koord) als Geheel Schemerige strSQL als Koord, rs als DAO.Recordset 'Wijs variabelen toe strSQL = „SELECTEER [“ & Fieldname & „] VAN [“ & TableName & „] WAAR Vals“ strSQL = vervang (vervang (strSQL, „[[“, „[“), „]]“, „]“) Plaats rs = CurrentDb.OpenRecordset (strSQL, dbFailOnError) FieldType = rs. Gebieden (0). Type rs. Sluit Plaats rs = niets Beëindig Functie Privé SubcboReport_Change () Schemerige strReport als Koord, strOpenReport als Koord 'Wijs variabelen toe strReport = „tbl“ & Me.cboReport.Value strOpenReport = „Report.rpt“ & Me.cboReport.Value 'Bevolkt cboField met opties op cboReport worden gebaseerd die. Me.cboField.RowSource = strReport Me.cboField.RowSourceType = de „Lijst van het Gebied“ Me.cboField.Value = "" Me.cboFilter.Value = "" Vormen! frmMain.subMain.Form.subReport.SourceObject = strOpenReport Sub van het eind Privé SubcboField_Change () Schemerige strReport als Koord, strField als Koord, strFilter1 als Koord 'Wijs variabelen toe strReport = „tbl“ & Me.cboReport.Value strField = Me.cboField.Value strFilter1 = „UITGEZOCHTE verschillend“ & „[“ & strReport & „]“ & „.“ & „[“ & strField & „]“ & „VAN“ & „[“ & strReport & „]“ & „; “ 'Bevolkt cboFilter met opties op cboReport worden gebaseerd die en cboField. Me.cboFilter.RowSourceType = „Lijst/Vraag“ Me.cboFilter.RowSource = strFilter1 Me.cboFilter.Value = "" Sub van het eind Privé SubcboFilter_Change () Schemerige strFilter als Koord, strApply als Koord, strField als Koord, strReport als Koord, intFieldType als Koord 'Wijs variabelen toe strReport = „tbl“ & Me.cboReport.Value strField = Me.cboField.Value strFilter = Me.cboFilter.Value intFieldType = FieldType (strReport, strField) 'Pas geselecteerde filter op subReport toe Selecteer Geval intFieldType Geval dbBigInt, dbBoolean, dbByte, dbNumeric dbDouble dbCurrency, dbDecimal, dbFloat, dbInteger, dbLong, strApply = „[“ & strField & „] =“ & strFilter dbChar geval, dbText, dbMemo strApply = „[“ & strField & „] = """ & strFilter & """" Geval dbDate, dbTime strApply = „[“ & strField & „] = #“ & strFilter & „#“ Geval anders MsgBox „Onverwacht gegevenstype =“ & intFieldType strApply = "" Uitgezocht eind Vormen! frmMain.subMain.Form.subReport.Report.Filter = strApply Vormen! frmMain.subMain.Form.subReport.Report.FilterOn = (strApply <> "") Sub van het eind Privé SubForm_Load () Vormen! frmMain.lblSubHeader.Caption = de „Generator van het Rapport“ Eind Sub

Antwoord : Ik heb glitch met een vorm en combodozen

1. Wat is de behoefte hoe dan ook aan de Belangrijkste vorm?
U kunt het dumpen, en alle verwijzingen veranderen naar het naar:
    [subReport]. Report.use dit
2. Verplaats uw comboboxcodes naar de gebeurtenissen „After_Update“

Ik heb een herstelde steekproef vastgemaakt.

Nota's:
Dit „Rapport in een Vorm“ functionaliteit is nieuw in Acc2010, zal het fouten als werpen ik kreeg,
Zelfs als geopend in Acc07 (die vermoedelijk compatibel is)
Het zal niet bij allen in oudere versies werken.

Als u filtreert, dan open uw rapport van een *separate*menu, (de standaardmanier waarop wordt dit gedaan, voor volledige verenigbaarheid) dit allen zal werken boete.
K.I.S.S
; -)

Met andere woorden, neig ik om vanaf het gebruiken van de nieuwe „functionaliteit van Gezoeven Gee“ te blijven tot ik volledig hoe het het werk begrijp.

Tot slot dit systeem kan het zijn omhoog beëindigen moeilijk te leiden (één menu, veelvoudige rapporten)
Aangezien u kunt worden verzocht om zich voor meer gebieden, en het complexere filtreren uit te breiden,
Opnieuw, is dit niet de standaardmanier om dit te doen.
Maar ik zal toestaan dat u in dit geval de werkgever bent.
; -)

Maar ja, was dit een interessante oefening.

; -)

JeffCoachman


Andere oplossingen  
 
programming4us programming4us