Помогите с API функцией

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
amelina
Обычный пользователь
Обычный пользователь
 
Сообщения: 53
Зарегистрирован: 26.11.2003 (Ср) 19:39
Откуда: Москва

Помогите с API функцией

Сообщение amelina » 02.03.2004 (Вт) 11:25

Помогите разобраться! Есть такой код (в Access'е):

Код: Выделить всё
Option Compare Database
Option Explicit

'описание структуры, применяемой для открытия диалога "OpenAs"
Private Type OPENFILENAME

lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String

End Type
   
'декларация WinAPI импортируемой функции из comdlg32.dll
Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias _
         "GetSaveFileNameA" (pOpenFileName As OPENFILENAME) As Long
_________________________________________

Private Function myFuction ()
    Dim OpenFile As OPENFILENAME
    Dim lReturn, lFreeFileNum, lQDCounter, lCounter As Long
    Dim sFilter, sSQLRequery, sQDName0, sQDName1, sCurQDName As String
    Dim sFileName As String * 256
    Dim bEOLFlag As Boolean

    'задание параметров для диалога "OpenAs"
    OpenFile.lStructSize = Len(OpenFile)
    OpenFile.hwndOwner = Screen.Application.hWndAccessApp
    OpenFile.hInstance = 0
   
    sFilter = "Text files (*.txt)" & Chr(0) & "*.txt" & Chr(0)
    OpenFile.lpstrFilter = sFilter
    OpenFile.nFilterIndex = 1
     
    'sFileName = "obmen_" & Me!month0.Column(1) & Me!day0
   
    OpenFile.lpstrFile = sFileName
    OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
    OpenFile.lpstrFileTitle = OpenFile.lpstrFile
    OpenFile.nMaxFileTitle = OpenFile.nMaxFile
    OpenFile.lpstrInitialDir = "\\server\obmen"
    OpenFile.lpstrTitle = "Save File"
    OpenFile.flags = 2050
    OpenFile.lpstrDefExt = "txt"
   
    'открываем диалог
    lReturn = GetSaveFileName(OpenFile)



... ну и т.д.

Так вот, из-за этой вот строчки: sFileName = "obmen_"... - в Windows 2000 процедура не работает!! А если ее закомментировать, то работает (ну, естественно, тогда имя файла надо вводить вручную, а это в данном случае неприемлемо...) А в 98 всё работает без проблем!

Подозреваю, что дело в API функции, но в чем именно ошибка, разобраться не могу...

Хелп!

amelina
Обычный пользователь
Обычный пользователь
 
Сообщения: 53
Зарегистрирован: 26.11.2003 (Ср) 19:39
Откуда: Москва

Сообщение amelina » 03.03.2004 (Ср) 11:24

Оказывается, надо

sFileName = "obmen_" & Me!month0.Column(1) & Me!day0 & Chr(0)

:?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 8

    TopList