Äîáðûé äåíü!
Ñèòóàöèÿ:
Access 2010 èç Office Professional 2010, ðóññêèé
Åñòü ôîðìà Frm, ðåæèì - Òîëüêî ÷òåíèå, âèä - Òàáëèöà.
Èñòî÷íèê äàííûõ - SQL çàïðîñ èç òàáëèöû Tbl1, êîòîðàÿ ïî êëþ÷åâîìó ïîëþ x1 (òèï String)
ñâÿçàíà ñ òàáëèöåé Tbl2, îòíîøåíèå "îäèí-êî-ìíîãèì".
Òàáëèöà Tbl2 ñâÿçàíà ñ òàáëèöåé Tbl3 ïî ÍÅ êëþ÷åâîìó ïîëþ x2 (òèï String).
Òbl1.[x1] îòîáðàæàåòñÿ â Frm.[x], òèï êîíòðîëà - ïîëå.
 Frm.[y], òèï êîíòðîëà - ïîëå ñî ñïèñêîì - äîëæåí îòîáðàæàòüñÿ ðåçóëüòàò SQL çàïðîñà èç Tbl3.
Âñå ïðîèñõîäèò â ñîáûòèè OnOpen ôîðìû Frm:
Private Sub Form_Open(Cancel As Integer)
Dim RecSource As String, S As String
RecSource = varSQL_PK ' ãëîáàëüíàÿ ïåðåìåííàÿ ñ èìåíåì çàïðîñà
Me.RecordSource = RecSource
S = Me.[x] 'êëþ÷åâîå ïîëå
With [y]
.BoundColumn = 1
.RowSource = _
"SELECT Tbl3.[x2], Tbl3.[x3] FROM Tbl3" + _
" INNER JOIN (Tbl2" + _
" INNER JOIN " + RecSource + _
" ON Tbl2.[x1]=" + RecSource + ".[x1])" + _
" ON Tbl3.[x2]=Tbl2.[x2]" + _
" WHERE Tbl2.[x1]='" + _
S + "'" + _
" ORDER BY Tbl3.[x3];"
.RowSourceType = "Table/Query"
.ColumnCount = 2
.ColumnWidths = "0ñì;3,652ñì"
.LimitToList = True
.AllowValueListEdits = False
.InheritValueList = True
.Requery
End With
End Sub
Ïðîáëåìà:
1) ïðè îòêðûòèè ôîðìû âñÿ êîëîíêà Frm.[y] ïóñòàÿ, õîòÿ ïðè âûáîðå ëþáîãî [y] îòêðûâàåòñÿ ñïèñîê ïîëåé
2) äëÿ âñåõ [y] ñïèñîê çàïèñåé îäèíàêîâ, ò.ê. â óñëîâèå îòáîðà Access ñòàâèò ÒÎËÜÊÎ
ïåðâóþ çàïèñü èç Me.[x], õîòÿ íóæíî - ñâîå çíà÷åíèå äëÿ êàæäîé çàïèñè íà ôîðìå.
Åñëè óáðàòü WHERE - òîò æå ýôôåêò, òîëüêî â ñïèñêå âñå çàïèñè.
 ÷åì îøèáêà?
Îòçîâèòåñü, êòî çíàåò, ÏÎÆÀËÓÉÑÒÀ!
P.S. Äëÿ Frm.[y] â Tbl1 åñòü ïîëå [y] - ìîæíî ëè êàê-òî â Tbl1 îáîéòèñü áåç íåãî?
Ò.ê. ôîðìà òîëüêî äëÿ ïðîñìîòðà, ðåçóëüòàò çàïðîñà õðàíèòü íå íóæíî.
http://www.sql.ru/forum/1300582/kontroll-v-forme-ne-pokazyvaet-rezultat-zaprosa