powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Функция возвращает странное...
3 сообщений из 3, страница 1 из 1
Функция возвращает странное...
    #32548981
Dyadya Zed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая ф-ция в Access XP:

Public Const LANG_DEFAULT = &H400
Public Const LANG_ENGLISH_US = &H409
Public Const LANG_RUSSIAN = &H419
Public Const LANG_UKRAINIAN = &H422

Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type

Declare Function GetDateFormat Lib "kernel32" Alias "GetDateFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, lpDate As SYSTEMTIME, ByVal lpFormat As String, ByVal lpDateStr As String, ByVal cchDate As Long) As Long

Public Function GetStringFromDate(lLangID As Long, dtDate As Variant, strFormat As String) As String
Dim stSysDate As SYSTEMTIME
Dim strResult As String * 256
Dim lBufSize As Long, lRetVal As Long

GetStringFromDate = ""
If Not IsDate(dtDate) Then Exit Function

stSysDate.wDay = Day(dtDate)
stSysDate.wMonth = Month(dtDate)
stSysDate.wYear = Year(dtDate)

lBufSize = 256

lRetVal = GetDateFormat(lLangID, 0, stSysDate, strFormat, strResult, lBufSize)
If lRetVal <> 0 Then GetStringFromDate = strResult
End Function


В базу все выдает отлично..
Результат ф-ции такой "17 липня, 2003"

Когда пытаюсь данные экспортировать через объекты офиса в Word XP (как в книге Гетца написано), всё передается нормально, но поле обрабатываемое этой ф-цией в результате выдает после текста "17 липня, 2003" штук 100-200 квадратиков...

Как с этим бороться??? Хееелп!
...
Рейтинг: 0 / 0
Функция возвращает странное...
    #32548997
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стринга из API функций возвращается в формате PSrting, т.е. оканчивается Chr(0)

надо ее преобразовать, откинуть то, что сзади

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Function StringFromSz(szTmp As String) As String
     '  Если строка оканчивается нулями, вернуть усеченную строку.
 
    Dim ich As Integer
    ich = InStr(szTmp, Chr$( 0 ))
    If ich Then
        StringFromSz = Left$(szTmp, ich -  1 )
    Else
        StringFromSz = szTmp
    End If
End Function

В вашей функции
Код: plaintext
1.
2.
3.
...
lRetVal = GetDateFormat(lLangID,  0 , stSysDate, strFormat, strResult, lBufSize)
If lRetVal <>  0  Then GetStringFromDate = StringFromSz(strResult)
End Function

?
...
Рейтинг: 0 / 0
Функция возвращает странное...
    #32549012
Dyadya Zed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное спасибо, помогло!!!!
Пытался бороться через Trim, не помогало..
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Функция возвращает странное...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]