Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: как текстовому полю отчета присвоить значение переменной
 
 автор: сергей   (22.11.2006 в 09:15)   личное сообщение
 
 

в процедуре из которой вызывается отчет есть переменная strFloor хочу ее значение поставить в отчет txtFloor ???
видимо вопрос простой
спасибо

  Ответить  
 
 автор: KrukVN   (22.11.2006 в 09:18)   личное сообщение
 
 

ну можно strFloor передать через openargs и потом в отчете присвоить полю
txtFloor = openargs

  Ответить  
 
 автор: ГлазастыйМышь   (22.11.2006 в 10:29)   личное сообщение
 
 

в отчете нету openargs. Только в форме.

либо через глобальные переменные. Либо, если из формы, то через созданные проперти формы

  Ответить  
 
 автор: KrukVN   (22.11.2006 в 10:41)   личное сообщение
 
 

как так нету в отчете
есть, точно есть
ГлазастыйМышь, посмотрите исчо раз :)
ЗЫ Access XP/2003

  Ответить  
 
 автор: osmor   (22.11.2006 в 10:54)   личное сообщение
 
 

В 97 -нет, в 2003 -есть

  Ответить  
 
 автор: KrukVN   (22.11.2006 в 11:23)   личное сообщение
 
 

в XP тож есть

  Ответить  
 
 автор: сергей   (22.11.2006 в 12:19)   личное сообщение
 
 

а если мне надо передать 4 строки (переменных)?

  Ответить  
 
 автор: Explorer   (22.11.2006 в 12:20)   личное сообщение
 
 

слейте и разделите

  Ответить  
 
 автор: сергей   (22.11.2006 в 12:29)   личное сообщение
 
 

проблема что я не могу присвоить ничего полю очета!!

  Ответить  
 
 автор: Силыч   (22.11.2006 в 12:33)   личное сообщение
 
 

используйте Property базы данных
и будет вам счастье
в поле отчета просто напишите
=GetProperty(<ВашеИмяСвойстваБД>)


Sub SetProperty(strName As String, vValue As Variant)

    Dim prpNew As Property
    Dim errLoop As Error

    ' Делает попытку задать значение указанного свойства.
    On Error GoTo Err_Property
    If IsNumeric(vValue) Then
        CurrentDb.Properties(strName) = Nz(vValue, 0)
    Else
        CurrentDb.Properties(strName) = Nz(vValue, " ")
    End If
    On Error GoTo 0

    Exit Sub

Err_Property:

' Ошибка 3270 означает, что свойство не найдено.
    If DBEngine.Errors(0).Number = 3270 Then
        ' Создает свойство, задает его значение и добавляет
        ' свойство в семейство Properties.
        Set prpNew = CurrentDb.CreateProperty(strName, dbText, vValue)
        CurrentDb.Properties.Append prpNew
        Resume Next
        If IsNumeric(vValue) Then
            CurrentDb.Properties(strName) = Nz(vValue, 0)
        Else
            CurrentDb.Properties(strName) = Nz(vValue, " ")
        End If
    Else
        ' При возникновении другой ошибки выводит сообщение.
        For Each errLoop In DBEngine.Errors
            MsgBox "Код ошибки: " & errLoop.Number & vbCr & errLoop.Description
        Next errLoop
        End
    End If

End Sub

Function GetProperty(strName As String)
    On Error GoTo Err_GProperty
    GetProperty = CurrentDb.Properties(strName).value
    Exit Function
Err_GProperty:
End Function

  Ответить  
 
 автор: сергей   (22.11.2006 в 13:03)   личное сообщение
 
 

спасибо силыч, спасибо всем!
два значения взял из открытой формы и
два из database.properties

  Ответить  
 
 автор: KrukVN   (22.11.2006 в 13:28)   личное сообщение
 
 

в модуле формы:

    Value_1 = 1
    Value_2 = 2
    Value_3 = 3
    Value_4 = 4
    DoCmd.OpenReport "rpt_Name", acViewPreview, , , , _
        Value_1 & "|" & Value_2 & "|" & Value_3 & "|" & Value_4

в модуле отчета:

Private Sub ЗаголовокОтчета_Format(Cancel As Integer, FormatCount As Integer)
    txt_field_1 = Split(OpenArgs, "|")(0)
    txt_field_2 = Split(OpenArgs, "|")(1)
    txt_field_3 = Split(OpenArgs, "|")(2)
    txt_field_4 = Split(OpenArgs, "|")(3)
End Sub

если только не Access 97 (Split там нет)

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList