|
|
|
| Возможен ли синтаксис для составных переменных например: Dim frm.name & "_Add" as As Recordset | |
|
| |
|
|
|
|
...составных переменных...
|
А это что такое? | |
|
| |
|
|
|
| В этом то и дело. Есть процедура общая для загрузки всех форм. Для реализации транзакций использую
Set rst_L = dbs.OpenRecordset("SELECT " & strSQL_P & ".* FROM " & strSQL_P & " WHERE (((" & strSQL_P & ".CID)=" & OpenCid & "))", dbOpenDynaset)
Set frm.Recordset = rst_L
Для дальнейшей обработки нужно однозно ссылаться на конкретный рекордсет загрузки формы с учетом того что может быть открыто несколько форм, а процедура общая для всех | |
|
| |
|
|
|
| Для дальнейшей обработки нужно однозно ссылаться на конкретный рекордсет загрузки формы с учетом того что может быть открыто несколько форм, а процедура общая для все |
Ну так и ссылайтесь КонкретнаяФорма.Recordset и т.д. | |
|
| |
|
|
|
|
Ну так и ссылайтесь КонкретнаяФорма.Recordset и т.д.
|
Все бы хорошо, но не могу поставить блокировку на запись для других пользователей | |
|
| |
|
|
|
| что вообще происходит у тебя с формами
подробно что тебе нужно реализовать. | |
|
| |
|
|
|
| Private Sub Form_Load()
Set frm = Me.Form
FormLoade
End Sub
Public Sub FormLoade()
Dim strSQL_P As String
strSQL_P = frm.Name
Dim rst_E As Recordset
'OpenCid присваивается в ленточной форме OpenCid = Me![CID]
Set rst_E = dbs.OpenRecordset("SELECT " & strSQL_P & ".* FROM " & strSQL_P & " WHERE (((" & strSQL_P & ".CID)=" & OpenCid & "))", dbOpenDynaset)
rst_E.Edit
Set frm.Recordset = rst_E
Exit Sub
rst_E.Edit запись для других пользователей не блокирует | |
|
| |
|
|
|
| Set наборЗаписей = объект.OpenRecordset (источник, тип, параметры, блокировки)
параметры :
dbDenyWrite - Запрет другим пользователям изменять или добавлять записи
блокировки:
dbPessimistic - Использование жесткой блокировки при определении возможности изменения объекта Recordset в многопользовательской среде. Страница, содержащая обрабатываемую запись, блокируется при вызове метода Edit
там их много посмотри все.
правда хэлп 97-го | |
|
| |
|
|
|
| 1. Это не ответ на вопрос: что такое ...составных переменных...
2. Можно использовать коллекцию Forms, или доморощенную коллекцию.
3. Можно спросить Screen на предмет активной формы.
4. Можно спросить CurrentObjectName и CurrentObjectType
Поимев ссылку на форму, легко поиметь ссылку на ее рекордсет. | |
|
| |
|
|
|
| Lukas
может чуть в сторону.
как правильно сделать такую вещь:
Dim Name_Form as String
Name_Form="Форма_1"
Set Name_Form.Recordset = "Select ........"
|
или описание переменной должно быть по другому??? | |
|
| |
|
|
|
| Если форма открыта, она есть в коллекции форм:
Для стандартно-открытой формы:
Dim FormName As String
FormName="frm1"
Forms(FormName).RecordSource="SELECT ...." 'Если строка, то не Recordset, а RecordSource
|
| |
|
| |
|
|
|
| ага, ясно. | |
|
| |
|
|
|
| он походу использует пространство имен объектов как данные (добавляет постфиксы к именам)
нормально
примерно как MSys к служебным таблицам | |
|
| |
|
|
|
| запросто - посторой мастером ГлавнуюФорму (Switchboard) и посмотри как там все устроено в модуле формы
Private Sub FillOptions()
' Fill in the options for this switchboard page.
' The number of buttons on the form.
Const conNumButtons = 8
Dim con As Object
Dim rs As Object
Dim stSql As String
Dim intOption As Integer
' Set the focus to the first button on the form,
' and then hide all of the buttons on the form
' but the first. You can't hide the field with the focus.
Me![Option1].SetFocus
For intOption = 2 To conNumButtons
Me("Option" & intOption).Visible = False
Me("OptionLabel" & intOption).Visible = False
Next intOption
' Open the table of Switchboard Items, and find
' the first item for this Switchboard Page.
Set con = Application.CurrentProject.Connection
stSql = "SELECT * FROM [Switchboard Items]"
stSql = stSql & " WHERE [ItemNumber] > 0 AND [SwitchboardID]=" & Me![SwitchboardID]
stSql = stSql & " ORDER BY [ItemNumber];"
Set rs = CreateObject("ADODB.Recordset")
rs.Open stSql, con, 1 ' 1 = adOpenKeyset
' If there are no options for this Switchboard Page,
' display a message. Otherwise, fill the page with the items.
If (rs.EOF) Then
Me![OptionLabel1].Caption = "There are no items for this switchboard page"
Else
While (Not (rs.EOF))
Me("Option" & rs![ItemNumber]).Visible = True
Me("OptionLabel" & rs![ItemNumber]).Visible = True
Me("OptionLabel" & rs![ItemNumber]).Caption = rs![ItemText]
rs.MoveNext
Wend
End If
' Close the recordset and the database.
rs.Close
Set rs = Nothing
Set con = Nothing
End Sub
|
| |
|
| |
|
|
|
| Спасибо, но это не мой случай. С контролами все понятно. | |
|
| |