Есть табличная форма. В defaultvalue некоторого поля надо запихнуть функцию которая бы возвращала название этого поля
gorobets dima
Дата: 04.06.2004 17:39:30
Есть табличная форма. В defaultvalue некоторого поля надо запихнуть функцию которая бы возвращала название этого поля
Владимир Саныч
Дата: 04.06.2004 18:29:08
dim c as control
...
c.defaultvalue="""" & c.controlsource & """"
Владимир Саныч
Дата: 04.06.2004 18:41:21
Даже так:
private sub Form_Open()
dim v as variant
for each v in array("textbox1","textbox2","textbox3")
with me(v)
.defaultvalue="""" & .controlsource & """"
end with
next
end sub
Или:
private sub Form_Open()
dim c as control
for each c in me.controls
if typename(c)="textbox"then c.defaultvalue="""" & c.controlsource & """"
next
end sub
gorobets dima
Дата: 04.06.2004 18:41:21
defaultvalue не в vba, а стандартным аксесовским способом: форма - свойство - значение по умолчанию.
Владимир Саныч
Дата: 04.06.2004 18:41:53
Стандартным нету. :^)
gorobets dima
Дата: 04.06.2004 18:44:37
поскольку функция которая сейчас выводит в поле имя этого поля лежит во внешнем модуле, не в модуле формы
Владимир Саныч
Дата: 04.06.2004 18:48:03
1. А какая разница, в каком модуле она лежит?
2. Так она все-таки существует? Тогда в чем вопрос?
Roma R
Дата: 04.06.2004 18:52:56
А просто имя поля в окне свойств записать нельзя?
аха
Дата: 04.06.2004 19:21:24
Public Function testAc() As String
On Error Resume Next
Dim frm As Access.Form
Dim ctl As Access.Control
Dim s As String
For Each frm In Forms
For Each ctl In frm.Controls
s = ctl.Properties("defaultvalue")
If err <> 0 Then
s = ""
err.Clear
End If
If s = "=TestAc()" Then
testAc = ctl.Properties("Name") 'controlsource и т.п.
err.Clear
End If
Next ctl
Next frm
End Function |
|
как - то так
или даже:
Public Function testAc() As String
On Error Resume Next
Dim frm As Access.Form
Dim ctl As Access.Control
Dim s As String
For Each frm In Forms
For Each ctl In frm.Controls
s = ctl.Properties("defaultvalue")
If err <> 0 Then
s = ""
err.Clear
End If
If s = "=TestAc()" Then 's = "TestAc()" и т.п.
testAc = ctl.Properties("Name") 'выставляем 1-е
ctl.Properties("defaultvalue") = ctl.Properties("Name")
'снимаем с обработки в циклах
err.Clear
End If
Next ctl
Next frm
End Function
|
|
может с помощью API как-то попроще можно.
опять же не все понятно по сабформам и т.п.