|
|
|
| Уважаемые знатоки! Подскажите как создать полный аналог функции MsgBox.
это вызвано тем, что я работаю в немецкой версии, а диалог в MsgBox мне нужен русский (все пользователи моей базы владеют только русским языком). | |
|
| |
|
|
|
| ну так сделайте модальную форму и вперёд :) | |
|
| |
|
|
|
| если тяжело запомнить/понять - 7 немецких слов напрашивается вопрос - на кой им вообще комп и этот софт
OK, Cancel, Abort, Retry, Ignore, Yes, No - все слова в диалоге MsgBox - тут даже полиглотом не нужно быть | |
|
| |
|
|
|
| Я думаю вопрос не в подписях кнопок, а в системных сообщениях,
которые выводятся на языке локализации.
В этом случае стоит перехватывать системные сообщения и подменять их своими. | |
|
| |
|
|
|
| Уважаемый Lukas! Вы правы: вопрос действительно в системных сообщениях.
Подскажите как в VBA перехватить? | |
|
| |
|
|
|
| У класса форма есть событие Error, там и подменяем текст сообщения.
Пример от Гетца & Co:
' From Access 2002 Desktop Developer's Handbook
' by Litwin, Getz, and Gunderloy (Sybex)
' Copyright 2001. All rights reserved.
Private Sub Form_Error( _
DataErr As Integer, Response As Integer)
Const adhcErrDataValidation = 3317
Const adhcErrDataType = 2113
Const adhcErrDuplicateKey = 3022
Const adhcErrNullKey = 3058
Dim strMsg As String
Select Case DataErr
Case adhcErrDataValidation, adhcErrDataType
strMsg = "The data you entered does not " & _
"fit the requirements for this field."
strMsg = strMsg & vbCrLf & "Please try again, " & _
"or press Escape to undo your entry."
MsgBox strMsg, vbExclamation
Response = acDataErrContinue
Case adhcErrDuplicateKey
strMsg = "You've attempted to add a record " & _
"that duplicates an existing key value."
strMsg = strMsg & vbCrLf & "Please try again, " & _
"or press Escape to undo your entry."
MsgBox strMsg, vbExclamation
Response = acDataErrContinue
Case adhcErrNullKey
strMsg = "You've attempted to add a new " & _
"record with an empty key value."
strMsg = strMsg & vbCrLf & "Please supply " & _
"a key value, or press Escape to undo your entry."
MsgBox strMsg, vbExclamation
Response = acDataErrContinue
' You can even place them on the right field!
txtLastName.SetFocus
Case Else
' It's an unexpected error. Let Access handle it.
Response = acDataErrDisplay
End Select
End Sub
|
| |
|
| |
|
|
|
| Уважаемый Lukas! Приношу свои извинения: я имел ввиду не замену системных сообщений, а вывод самого техта сообщения. При задании текста на русском языке выводится "????????". Как я понимаю мне необходимо как-то подменить кодовую страницу.
Но думаю это не возможно. Настройки языка (Unicod="русский") приводят к аварийной работе базы (OLE не комуницируется).
Другой путь - создать полный аналог функции MsgBox, но все поиски такого решения оказались безуспешными. М.б. Вы встречали? Буду весьма признателен за помощь! | |
|
| |
|
|
|
| Тут есть: http://hiprog.com/index.php?option=com_content&task=view&id=527
Но, сомневаюсь, что это вам поможет. | |
|
| |
|
|
|
| попробу собирать нужный русский текст как собирает его Акс когда задаешь мастером открыть отчет с русским названием
DocName = ChrW(1056) & ChrW(1077) & ChrW(1076) & ChrW(1072) & ChrW(1082) & ChrW(1090) & ChrW(1080) & ChrW(1088) & ChrW(1086) & ChrW(1074) & ChrW(1072) & ChrW(1085) & ChrW(1080) & ChrW(1077) & ChrW(32) & ChrW(1087) & ChrW(1088) & ChrW(1080) & ChrW(1093) & ChrW(1086) & ChrW(1076) & ChrW(1085) & ChrW(1086) & ChrW(1081) & ChrW(32) & ChrW(1085) & ChrW(1072) & ChrW(1082) & ChrW(1083) & ChrW(1072) & ChrW(1076) & ChrW(1085) & ChrW(1086) & ChrW(1081) | |
|
| |