Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Есть-ли в А2000 форматированный вывод в MsgBox  [new]
Анн
Guest
Как в А97, т.е. для указания конца одного раздела и начала следующего
используется знак "@"
9 дек 03, 17:21    [453669]     Ответить | Цитировать Сообщить модератору
 Re: Есть-ли в А2000 форматированный вывод в MsgBox  [new]
Senin Viktor
Member

Откуда: Подмосковье
Сообщений: 5006
Нам красивости не к чему, почему-то посчитали в микрософь и убрали возможность форматирования
Но неизвестный автор сделал так:
Public Function FormattedMsgBox( _

Prompt As String, _
Optional Buttons As VbMsgBoxStyle = vbOKOnly, _
Optional Title As String = vbNullString, _
Optional HelpFile As Variant, _
Optional Context As Variant) _
As VbMsgBoxResult

If IsMissing(HelpFile) Or IsMissing(Context) Then
FormattedMsgBox = Eval("MsgBox(""" & Prompt & _
"
"", " & Buttons & ", """ & Title & """)")
Else
FormattedMsgBox = Eval("MsgBox(""" & Prompt & _
"
"", " & Buttons & ", """ & Title & """, """ & _
HelpFile & "
"", " & Context & ")")
End If
End Function
9 дек 03, 17:32    [453699]     Ответить | Цитировать Сообщить модератору
 Re: Есть-ли в А2000 форматированный вывод в MsgBox  [new]
igor603
Member

Откуда:
Сообщений: 105
Если попроще надо, то можно вот так
MsgBox "Обнаружена попытка несанкционированного доступа. " + Chr(13) & _
"Отправлено сообщение администратору для принятия мер. " + Chr(13) & _
"Имя компьютера - " & ComputerName() + Chr(13) & _
"Дата - " & Format(Date) + Chr(13) & _
"Время - " & Format(Time, "hh:mm:ss"), vbOKOnly + vbCritical, "Внимание!"
9 дек 03, 22:37    [453996]     Ответить | Цитировать Сообщить модератору
 Re: Есть-ли в А2000 форматированный вывод в MsgBox  [new]
iska
Member

Откуда:
Сообщений: 32
MsgBox "1." & vbCrLf _
& "2." & vbCrLf _
& "3. " & vbCrLf & vbCrLf _
& "Итого:"
10 дек 03, 05:51    [454079]     Ответить | Цитировать Сообщить модератору
 Re: Есть-ли в А2000 форматированный вывод в MsgBox  [new]
Senin Viktor
Member

Откуда: Подмосковье
Сообщений: 5006
Для тех кто в танке.
Знак "@" служил для выделения строки жирным шрифтом и переводом строки
? FormattedMsgBox("Жирный@@ не жирны")
10 дек 03, 09:07    [454180]     Ответить | Цитировать Сообщить модератору
 Re: Есть-ли в А2000 форматированный вывод в MsgBox  [new]
АлексейК
Member

Откуда: http://www.msdatabase.ru , Moscow
Сообщений: 7683
весь фокус в использовании eval .....
Чудеса )))
10 дек 03, 09:30    [454221]     Ответить | Цитировать Сообщить модератору
 Re: Есть-ли в А2000 форматированный вывод в MsgBox  [new]
Анатолий (Киев )
Guest
Никаких чудес.
В А2000 макрокоманда MsgBox по прежнему понимает символы "@".
EVal() - это функция из библиотеки Access, и в данном случае она вызывает не VB функцию MsgBox, а метод DoCmd.MsgBox, который напрямую в процедурах не поддерживается.
10 дек 03, 10:37    [454396]     Ответить | Цитировать Сообщить модератору
 Re: Есть-ли в А2000 форматированный вывод в MsgBox  [new]
Senin Viktor
Member

Откуда: Подмосковье
Сообщений: 5006
2Анатолий (Киев )
>а метод DoCmd.MsgBox

Что-то такого метода у DoCmd я не обнаружил

Knowledge Base  

ACC2000: MsgBox Function Ignores At Sign (@) Formatting
SYMPTOMS
In Microsoft Access 2000, the at sign (@) does not provide special formatting
when you use it with the MsgBox function.
CAUSE
The MsgBox function provided by the Microsoft Visual Basic Editor (Vbe6.dll) does
not support the formatting provided by the at sign (@).
RESOLUTION
There are two possible solutions. One solution is to use the MsgBox action in a
macro. The other solution is to write a user-defined function that uses the Eval
function to call the MsgBox function.
...
Function FormattedMsgBox(Prompt As String, _
Optional Buttons As VbMsgBoxStyle = vbOKOnly, _
Optional Title As String = "Microsoft Access", _
Optional HelpFile As Variant, _
Optional Context As Variant) As VbMsgBoxResult
Dim strMsg As String
If IsMissing(HelpFile) Or IsMissing(Context) Then
strMsg = "MsgBox(" & Chr(34) & Prompt & Chr(34) & ", " & Buttons & _
", " & Chr(34) & Title & Chr(34) & ")"
Else
strMsg = "MsgBox(" & Chr(34) & Prompt & Chr(34) & ", " & Buttons & _
", " & Chr(34) & Title & Chr(34) & ", " & Chr(34) & _
HelpFile & Chr(34) & ", " & Context & ")"
End If
FormattedMsgBox = Eval(strMsg)
End Function

....
MORE INFORMATION
In earlier versions of Microsoft Access, you can use the at sign to format portions
of the message text in a MsgBox function. When you use two at signs in the text
of the MsgBox function, the text delimited by the at sign is separated into three
paragraphs in the Message Box, with the first paragraph in bold text.

This functionality is provided by the Visual Basic for Applications library
(Vba332.dll) in Microsoft Access 97. With the integration of the Microsoft Visual
Basic Editor, Microsoft Access 2000 no longer implements Vba332.dll.
10 дек 03, 10:59    [454456]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Есть-ли в А2000 форматированный вывод в MsgBox  [new]
mazdayka
Member

Откуда:
Сообщений: 119
Senin Viktor
Для тех кто в танке.
Знак "@" служил для выделения строки жирным шрифтом и переводом строки
? FormattedMsgBox("Жирный@@ не жирны")

а вот что то в A2003 он уже не понимает @@ эти символы! и лепит их прямо в сообщении при этом не выделяя ничего жирным!!
4 май 06, 22:10    [2631987]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить