Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2011, 15:31   #1
mortal2010
Пользователь
 
Регистрация: 20.01.2011
Сообщений: 18
По умолчанию Окно после выполнения запроса

Здравствуйте,
такой вопрос: после выполнения процедуры, содержащей запрос, выскакивает окно InputBox Access с предложением ввести значение параметра (переменная MonName). В дебагере просматриваю - этой переменной присваивается нужное значение.
Как убрать это окно и с чем связано его появление. Если кто знает, растолкуйте пожалуйста.
Пример кода:
Код:
Private Sub Кнопка13_Click()
Dim DayDate, DayHour, MonName, YearName As String
Dim i, q As Integer
DayDate = ""

'Кол-во выходных дней в месяце
For i = 1 To Daycount(Me.Поле11, Me.Поле5)
    q = Weekday(CStr(i) & "." & Me.Поле11 & "." & Me.Поле5)
        If q = 1 Or q = 7 Then DayHour = DayHour & "'в',": DayDate = DayDate & "[" & CStr(i) & "],"
Next i
DayDate = Left(DayDate, Len(DayDate) - 1): DayHour = Left(DayHour, Len(DayHour) - 1)
MonName = Format("01." & Me.Поле11 & "." & Me.Поле5, "mmmm"): YearName = Format("01." & Me.Поле11 & "." & Me.Поле5, "yyyy")
DoCmd.RunSQL "Insert into tabel (id_year,id_mon,id_user,id_dep,id_doljn) Select " & YearName & " ," & MonName & ", tUser.User, tUser.Dep, tUser.Doljnost FROM tUser where tUser.id_user "
Me.Requery
Me.Refresh
End Sub
mortal2010 вне форума Ответить с цитированием
Старый 17.02.2011, 18:18   #2
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Он просто не понимает Ваше " & MonName & "
Abrakadabra вне форума Ответить с цитированием
Старый 17.02.2011, 21:33   #3
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте mortal2010.
в дополнение замечу, возможно SQL сборка ..." & YearName & " ," & MonName & "... не верна совсем, если оба заполняемые поля id_year,id_mon текстовые.
"..после выполнения процедуры,.." - не могли бы Вы просветить, каково назначение процедуры, очень интересно.

Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 18.02.2011, 08:57   #4
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

Код:
Private Sub Кнопка13_Click()
Dim DayDate, DayHour, MonName, YearName As String
Dim i, q As Integer
DayDate = ""

'Кол-во выходных дней в месяце
For i = 1 To Daycount(Me.Поле11, Me.Поле5)
 q = Weekday(CStr(i) & "." & Me.Поле11 & "." & Me.Поле5)
 If q = 1 Or q = 7 Then 
  DayHour = DayHour & "'в',"
  DayDate = DayDate & "[" & CStr(i) & "],"
 endif
Next i
DayDate = Left(DayDate, Len(DayDate) - 1)
DayHour = Left(DayHour, Len(DayHour) - 1)
MonName  = Format("01." & Me.Поле11 & "." & Me.Поле5, "mmmm")
YearName = Format("01." & Me.Поле11 & "." & Me.Поле5, "yyyy")
dim s1
'все числовое
s1="Insert into tabel (id_year,id_mon,id_user,id_dep,id_doljn)
s1=s1 & " Select " 
s1=s1 & "'" & YearName & "' ,"    'symvol
s1=s1 & "'" & MonName & "' ,"     'symvol
s1=s1 & " tUser.User, tUser.Dep, tUser.Doljnost   'symvol
s1=s1 & " FROM tUser where tUser.id_user "  'нет значения выбора
DoCmd.RunSQL s1
Me.Requery
Me.Refresh
End Sub
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 18.02.2011, 10:29   #5
mortal2010
Пользователь
 
Регистрация: 20.01.2011
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Teslenko_EA Посмотреть сообщение
Здравствуйте mortal2010.
в дополнение замечу, возможно SQL сборка ..." & YearName & " ," & MonName & "... не верна совсем, если оба заполняемые поля id_year,id_mon текстовые.
"..после выполнения процедуры,.." - не могли бы Вы просветить, каково назначение процедуры, очень интересно.

Евгений.
Вобщем смысл такой: из файла Excel (ТАБЕЛЬ_2011_январь, и.т.д.) импортируются данные и вставляются (выборочно) в таблицу Temp. А потом запросом на добавление добавляются в общую таблицу tabel.
Проблема1:данные импрортируются с текстовым типом данных, а у меня в 1-ом варианте базы использовались поля с подстановкой (числовой тип). Теперь я хочу переделать всю базу с полями типа VARCHAR чтобы импорт был наиболее безболезненным.
Проблема2: После изменения типов полей импорт вроде бы заработал, только данные частично пропадают
Смысл процедуры, описанной выше, в добавлении данных из таблицы tUser (типо справочник сотрудников) в сводную таблицу tabel (собственно основной табель).
Скинул файлы в надежде, что поможете разобраться
Вложения
Тип файла: rar Import2.rar (2.14 Мб, 14 просмотров)
mortal2010 вне форума Ответить с цитированием
Старый 18.02.2011, 10:44   #6
mortal2010
Пользователь
 
Регистрация: 20.01.2011
Сообщений: 18
По умолчанию

shanemac51,

огромное спасибо за ответ.
По поводу моего первого поста посоветовали апострофы:
Код:
DoCmd.RunSQL "Insert into tabel (id_year,id_mon,id_user,id_dep,id_doljn) Select " & YearName & " ,'" & MonName & "', tUser.User, tUser.Dep, tUser.Doljnost FROM tUser where tUser.id_user "

Цитата:
Сообщение от shanemac51 Посмотреть сообщение
Код:
s1=s1 & " FROM tUser where tUser.id_user "  'нет значения выбора
Тут чесно говоря, я не знаю что нужно писать после where tUser.id_user =...
Запрос работает вроде, даже в таком незаконченом виде))))
mortal2010 вне форума Ответить с цитированием
Старый 25.02.2011, 13:18   #7
mortal2010
Пользователь
 
Регистрация: 20.01.2011
Сообщений: 18
По умолчанию

Цитата:
Сообщение от mortal2010 Посмотреть сообщение

Тут чесно говоря, я не знаю что нужно писать после where tUser.id_user =...
Запрос работает вроде, даже в таком незаконченом виде))))
Придумал что писать после where tUser.id_user =...
Добавил в таблицу tUser (типо Справочник сотрудников) поле Disabled(логический тип), на случай увольнения сотрудника, чтобы не копировалась его запись в дальнейшие месяца и получилось:
Код:
DoCmd.RunSQL "Insert into tabel (id_year,id_mon,id_user,id_dep,id_doljn, " & DayDate & ") Select " & YearName & " ,'" & MonName & "', tUser.User, tUser.Dep, tUser.Doljnost, " & DayHour & " FROM tUser where [tUser]![Disabled]=False"
mortal2010 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка выполнения запроса Maks57 БД в Delphi 1 01.06.2010 01:12
Ошибка выполнения запроса Maks57 Помощь студентам 0 31.05.2010 23:46
Хочу, чтобы окно не закрывалось после выполнения программы fs444 Общие вопросы C/C++ 7 22.09.2009 16:42
Проблема выполнения запроса Рустам PHP 2 31.05.2008 15:15
Ошибка выполнения запроса Квэнди БД в Delphi 1 13.03.2007 23:12