Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: help
 
 автор: ddi   (20.05.2011 в 10:47)   личное сообщение
 
 

Private Sub save___print_Click()
On Error GoTo save___print_Click_Err
Dim i
If (IsNull(aah)) Then
DoCmd.RunMacro "eror.4", , ""
DoCmd.GoToControl "AAH"
Exit Sub
End If
If (IsNull(Hasce)) Then
DoCmd.RunMacro "eror.5", , ""
DoCmd.GoToControl "hasce"
Exit Sub
End If
If (IsNull(sum) Or sum = 0 Or sum < 0) Then
DoCmd.RunMacro "eror.3", , ""
DoCmd.GoToControl "sum"
Exit Sub
End If
If (IsNull(npatak)) Then
DoCmd.RunMacro "eror.6", , ""
DoCmd.GoToControl "Npatak"
Exit Sub
End If
If data < date Then
DoCmd.RunMacro "eror.7", , ""
DoCmd.GoToControl "data"
Exit Sub
End If
If (IsNull(order)) Then
Beep
Exit Sub
End If
On Error Resume Next
If (Form.Dirty) Then
DoCmd.RunCommand acCmdSaveRecord
End If
If (MacroError.Number <> 0) Then
Beep
MsgBox MacroError.Description, vbOKOnly, ""
Exit Sub
End If
On Error GoTo 0
DoCmd.OpenReport "nandor", acViewNormal, "", order, acNormal
""""""""""""""""DoCmd.GoToRecord acForm, "n", acNewRec """"""""""""""""( пишет ошибку Eror 2046 The command or action "gotorecord" isnt acalible now)
DoCmd.GoToControl "aah"


save___print_Click_Exit:
Exit Sub

save___print_Click_Err:
MsgBox Error$
Resume save___print_Click_Exit

End Sub

  Ответить  
 
 автор: osmor   (20.05.2011 в 12:03)   личное сообщение
 
 

а форма "n" открыта?

  Ответить  
 
 автор: ddi   (20.05.2011 в 12:11)   личное сообщение
 
 

да это код из этой форумы

  Ответить  
 
 автор: osmor   (20.05.2011 в 12:21)   личное сообщение
 
 

замените эту строчку на
Forms("n").Recordset.AddNew
или
me.Recordset.AddNew

Совет, отказывайтесь от макросов

  Ответить  
 
 автор: snipe   (20.05.2011 в 12:22)   личное сообщение
 
 

У тебя фокус находится на отчете
надо его переместить на форму n и перейти на новую запись

  Ответить  
 
 автор: ddi   (20.05.2011 в 13:02)   личное сообщение
 
 

как это? как я понимаю команда DoCmd.GoToRecord и менает фокус
я всегда так делую и всегда работает
Private Sub save___print_KeyPress(KeyAscii As Integer)
On Error GoTo save___print_KeyPress_Err

If (IsNull(aah)) Then
DoCmd.RunMacro "eror.4", , ""
DoCmd.GoToControl "AAH"
Exit Sub
End If
If (IsNull(Hasce)) Then
DoCmd.RunMacro "eror.5", , ""
DoCmd.GoToControl "hasce"
Exit Sub
End If
If (IsNull(Sum) Or Sum = 0 Or Sum < 0) Then
DoCmd.RunMacro "eror.3", , ""
DoCmd.GoToControl "sum"
Exit Sub
End If
If (IsNull(npatak)) Then
DoCmd.RunMacro "eror.6", , ""
DoCmd.GoToControl "Npatak"
Exit Sub
End If
If (IsNull(order)) Then
Beep
Exit Sub
End If
On Error Resume Next
If (Form.Dirty) Then
DoCmd.RunCommand acCmdSaveRecord
End If
If (MacroError.Number <> 0) Then
Beep
MsgBox MacroError.Description, vbOKOnly, ""
Exit Sub
End If
On Error GoTo 0
DoCmd.OpenReport "tandor", acViewNormal, "", order, acNormal
DoCmd.GoToRecord acForm, "t", acNewRec
DoCmd.GoToControl "aah"


save___print_KeyPress_Exit:
Exit Sub

save___print_KeyPress_Err:
MsgBox Error$
Resume save___print_KeyPress_Exit

End Sub а это код работает вчём разница ? (взято ис другой формы)

  Ответить  
 
 автор: osmor   (20.05.2011 в 14:40)   личное сообщение
 
 

формы не popup или модальные ? Обе?

  Ответить  
 
 автор: ddi   (21.05.2011 в 12:15)   личное сообщение
 
 

Osmor спасибо за совет заработало но типер ошибка в DoCmd.GoToControl "aah" и ещё вот такой вапрос есть поле в поле по умалчению дата например 21,05,2011(имя поле data) как написать чтобы при нажатии кнопки vba провиряла если data < текущий даты или data > текущуий даты но чтобы +5 дней далше я напишу

dim t as date
t =date
if d< t then
*********
end if а как далше

и как пичатать очёт чтобы небыло конпки отмена (чтобы не появилась окно где написано идёт печать очёта )

popup - yes
модальные -yes

  Ответить  
 
 автор: snipe   (21.05.2011 в 13:13)   личное сообщение
 
 


но типер ошибка в DoCmd.GoToControl "aah"


можно попробывать (если фокус находится на форме)

me![aah].setfocus
или
forms![имя формы]![aah].setfocus

  Ответить  
 
 автор: ddi   (23.05.2011 в 08:27)   личное сообщение
 
 

Да заработало спасибо а на другие вапросы кто нибуть может ответить ?

  Ответить  
 
 автор: час   (23.05.2011 в 09:22)   личное сообщение
 
 

..можно поизучать вот тут...
http://vba-help.ru/vbahelp/Function/date/DatePart/

  Ответить  
 
 автор: ddi   (23.05.2011 в 09:55)   личное сообщение
 
 

не нашол

  Ответить  
 
 автор: час   (23.05.2011 в 10:58)   личное сообщение
 
 

data > текущуий даты но чтобы +5 дней

data <= DateAdd('d', 5, Date())

  Ответить  
 
 автор: ddi   (23.05.2011 в 12:48)   личное сообщение
 
 

Час это понятно но проблема в том что день может быть первым днём месеца или паследним днём тогда будит ли работать этот код?

  Ответить  
 
 автор: час   (23.05.2011 в 17:54)   личное сообщение
 
 

Будет работать!
Всё уже придумано - до нас.

  Ответить  
 
 автор: ddi   (24.05.2011 в 08:35)   личное сообщение
 
 

час не работает!

  Ответить  
 
 автор: час   (24.05.2011 в 09:33)   личное сообщение
 
 

Надо видимо - поле дата привести в соответствующий тип - тип дата.
Или чё не работает то?

  Ответить  
 
 автор: ddi   (24.05.2011 в 14:07)   личное сообщение
 
 

час в свойствах FOR DATES или не правилно?

  Ответить  
 
 автор: час   (24.05.2011 в 18:46)   личное сообщение
 
 


Функция CDate распознает форматы данных в соответствии с параметрами языковых стандартов 
компьютера.  Если формат передаваемого аргумента не соответствует распознаваемым настройкам даты,
  функция не сможет определить правильный порядок дней, месяцев и лет. Кроме того, длинный формат даты 
не  распознается, если в нем содержится строка дня недели. 

  Ответить  
 
 автор: час   (24.05.2011 в 18:47)   личное сообщение
 
 


В этом примере функция CDate используется для преобразования строки в тип Date. На практике не 
рекомендуется определять в тексте программы дату и время в виде строк (как показано в этом примере). 
Вместо этого пользуйтесь литералами даты и времени, например #2/12/1969# и #4:45:23 PM#.


Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "12 февраля 1969 г." 
' Преобразование в тип данных Date.
MyShortDate = CDate(MyDate)

MyTime = "4:35:47 PM" 
' Преобразование в тип данных Date.
MyShortTime = CDate(MyTime)

  Ответить  
 
 автор: ddi   (25.05.2011 в 09:13)   личное сообщение
 
 

спасибо

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList