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

Форум: MS ACCESS

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

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

 
 

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

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

тема: При открити формы
 
 автор: ddi   (30.05.2011 в 16:02)   личное сообщение
 
 

При открити формы до поевления формы поевлается поле из этой же формы потом же вся форма
в коде me.id.setfocus но если убрать то всё равно тоже самое

  Ответить  
 
 автор: Силblч   (30.05.2011 в 16:23)   личное сообщение
 
 

та отож

  Ответить  
 
 автор: час   (30.05.2011 в 23:08)   личное сообщение
 
 

мистика

  Ответить  
 
 автор: Stanislav   (31.05.2011 в 01:06)   личное сообщение
 
 

На другом компе попробуй.

  Ответить  
 
 автор: ddi   (31.05.2011 в 08:07)   личное сообщение
37 Кб.
 
 

тоже самое сматрите

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

Код сотвествино
Private Sub Form_Load()
Form.RecordSource = "pen"
Me.id.ControlSource = "nomer_sch1"
Me.order.ControlSource = "ID_IZM"
Me.date.ControlSource = "DATA_OPL"
Me.Gumar.ControlSource = "SUMA"
Me.enid = DLookup(" [usertmp]![userid] ", "usertmp", " [usertmp]![id] = " & 1)
Me.enid.ControlSource = "IDENERGY"
Dim r1
Dim r2
Dim r3
r1 = DLookup("[Usysdb]![db]", "Usysdb", "[Usysdb]![id]=" & (2))
r2 = DLookup("[UsysdbProtect]![dbz]", "Usysdbprotect", "[UsysdbProtect]![id]=" & (3))
r3 = DLookup("[UsysdbProtect]![dbx]", "Usysdbprotect", "[UsysdbProtect]![id]=" & (3))
If (r1 <> r2 And r1 <> r3) Then
Beep
MsgBox "Error 1001: Ask your administrator", vbOKOnly, ""
End If
Forms("en").Recordset.AddNew
Me.id.SetFocus
End Sub

  Ответить  
 
 автор: SNIPE   (31.05.2011 в 10:52)   личное сообщение
 
 

А чего ей не мерцать-то
сначала форма грузит свои source потом вы их кодом переписываете
это реакция на двойную работу

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

Понятно но удалив весь код оставив только
Forms("en").Recordset.AddNew
Me.id.SetFocus
тоже так
helpppppppppppppppppppppppppppppppp pppp

  Ответить  
 
 автор: Дядя Федор   (31.05.2011 в 13:14)   личное сообщение
 
 

Это происходит при открытии из конструктора или всегда?
И код повесь на открытие а не на загрузку.

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

Всегда, изменил на откритие ну проблема осталась

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

Неужели никто не сталкивался с такой праблемой

  Ответить  
 
 автор: Силblч   (01.06.2011 в 10:36)   личное сообщение
 
 

попробуйте "замораживать" отрисовку на момент таких изменений
потом - восстанавливайте

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

как это?

  Ответить  
 
 автор: Дядя Федор   (01.06.2011 в 12:59)   личное сообщение
 
 

Пример бы в студию.... Так гадание получается.

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

Да понятно но ниужели нет никово кто мог бы памоч ?

  Ответить  
 
 автор: Силblч   (01.06.2011 в 14:16)   личное сообщение
 
 


The Painting property uses the following settings.

Setting Description 
True  (Default) The form or report is repainted. 
False  The form or report isn't repainted. 




Example
The following example uses the Painting property to enable or disable 
form painting depending on whether the SetPainting variable is set to 
True or False. If form painting is turned off, Microsoft Access displays 
the hourglass icon while painting is turned off.


Public Sub EnablePaint(ByRef frmName As Form, _
                       ByVal SetPainting As Integer)

    frmName.Painting = SetPainting
    
    ' Form painting is turned off.
    If SetPainting = False Then
        DoCmd.Hourglass True
    Else
        DoCmd.Hourglass False
    End If
    
End Sub

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

))))))))))))))))))непамагло

  Ответить  
 
 автор: Explorer   (01.06.2011 в 15:34)   личное сообщение
 
 

<<=== забей ==<<

у меня на самой крутой ERP такая-же хрень и никто не парится
а ты по такому пустяку истерику устроил

или

попробуй все перетащить в новый пустой проект

  Ответить  
 
 автор: lukas   (01.06.2011 в 15:42)   личное сообщение
 
 

(ради спортивного интереса:)
Попробовать убрать все источники данных из свойств объектов,
назначать их после показа формы на экране.

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

  Ответить  
 
 автор: Силblч   (01.06.2011 в 15:44)   личное сообщение
 
 

может....
можно еще прямоугольник размером с форму ставить, а потом убирать....

а можно форму делать Hide, а потом, когда прорисовалось - View
может....

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

lukas;Силblч уже всё перепробвал

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


может....
можно еще прямоугольник размером с форму ставить, а потом убирать....
а можно форму делать Hide, а потом, когда прорисовалось - View
может....


Скрин программы(формы) вывести, а потом саму форму.

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

Час если удалить весь код из формы то всё равно при откритии тоже самое во всех формах где есть текст бокс удалив первое поле всё равно тоже самое присходит с втарим полем

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

Тогда надо - как Силыч предлагает:
При загрузге формы - поставить код

Private sub Form Load()

Me.Visible = False
' здесь добавить задержку выполнения кода - 1 сек
....................
' затем

Me.Visible = True

End Sub

  Ответить  
 
 автор: ddi   (02.06.2011 в 10:47)   личное сообщение
 
 

анамалия)))))) неработает
попробывал так
Private Sub Form_Load()
Forms("en").Visible = False
Form.RecordSource = "pen"
Me.id.ControlSource = "nomer_sch1"
Me.order.ControlSource = "ID_IZM"
Me.date.ControlSource = "DATA_OPL"
Me.Gumar.ControlSource = "SUMA"
Me.enid = DLookup(" [usertmp]![userid] ", "usertmp", " [usertmp]![id] = " & 1)
Me.enid.ControlSource = "IDENERGY"
Dim r1
Dim r2
Dim r3
r1 = DLookup("[Usysdb]![db]", "Usysdb", "[Usysdb]![id]=" & (2))
r2 = DLookup("[UsysdbProtect]![dbz]", "Usysdbprotect", "[UsysdbProtect]![id]=" & (3))
r3 = DLookup("[UsysdbProtect]![dbx]", "Usysdbprotect", "[UsysdbProtect]![id]=" & (3))
If (r1 <> r2 And r1 <> r3) Then
Beep
MsgBox "Error 1001: Ask your administrator", vbOKOnly, ""
End If
Forms("en").Recordset.AddNew
Dim PauseTime, start, Finish, TotalTime
PauseTime = 5
start = Timer
Do While Timer < start + PauseTime
Loop
If Timer < start + PauseTime Then
Finish = Timer
Forms("en").Visible = True
Me.id.SetFocus
End If
End Sub
и так
Private Sub Form_Load()
Forms("en").Visible = False
Dim PauseTime, start, Finish, TotalTime
PauseTime = 5
start = Timer
Do While Timer < start + PauseTime
Loop
If Timer < start + PauseTime Then
Finish = Timer
Form.RecordSource = "pen"
Me.id.ControlSource = "nomer_sch1"
Me.order.ControlSource = "ID_IZM"
Me.date.ControlSource = "DATA_OPL"
Me.Gumar.ControlSource = "SUMA"
Me.enid = DLookup(" [usertmp]![userid] ", "usertmp", " [usertmp]![id] = " & 1)
Me.enid.ControlSource = "IDENERGY"
Dim r1
Dim r2
Dim r3
r1 = DLookup("[Usysdb]![db]", "Usysdb", "[Usysdb]![id]=" & (2))
r2 = DLookup("[UsysdbProtect]![dbz]", "Usysdbprotect", "[UsysdbProtect]![id]=" & (3))
r3 = DLookup("[UsysdbProtect]![dbx]", "Usysdbprotect", "[UsysdbProtect]![id]=" & (3))
If (r1 <> r2 And r1 <> r3) Then
Beep
MsgBox "Error 1001: Ask your administrator", vbOKOnly, ""
End If
Forms("en").Recordset.AddNew
Forms("en").Visible = True
Me.id.SetFocus
End If
End Sub
всё равно таже проблема

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

Есть другие варианты или это последная?

  Ответить  
 
 автор: Силblч   (02.06.2011 в 11:32)   личное сообщение
 
 

самый последний вариант - забить
вколотить осиновый кол!
описать как особенность программы, растиражировать как необычную, уникальную, возможность, которой не обладает ни один из аналогов!

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

форму открывать сразу в невидимом режиме через docmd а уж потом показывать

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

форму открывать сразу в невидимом режиме через docmd а уж потом показывать

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

snipe и так тоже пробывал ну эфект тот же

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

Силblч у меня тут анамалия)

  Ответить  
 
 автор: Дядя Федор   (02.06.2011 в 13:08)   личное сообщение
 
 

на авось.
в начале
docmd.echo false
....
в конце
docmd.echo true

  Ответить  
 
 автор: Силblч   (02.06.2011 в 13:20)   личное сообщение
 
 

кстатида

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

Дядя Федор тоже самое

  Ответить  
 
 автор: Силblч   (02.06.2011 в 15:09)   личное сообщение
 
 

переустанови винду и аксесс :)

  Ответить  
 
 автор: Дядя Федор   (02.06.2011 в 15:32)   личное сообщение
 
 

ну... декомпйл, компайл или перенеси все в чистую базу. не знаю. формочку бы с минимумом данных на растерзание.
кстати, зачем контролам присваивать источник. может к форме прилепить запрос и поля напрямую связать.
все же какое-то время сэкономится.

Me.enid = DLookup(" [usertmp]![userid] ", "usertmp", " [usertmp]![id] = " & 1)
Me.enid.ControlSource = "IDENERGY"

И это кусочек непонятен. Сначала одно, потом другое.
Что же там? [usertmp]![userid] или "IDENERGY"

  Ответить  
 
 автор: ddi   (02.06.2011 в 17:18)   личное сообщение
 
 

Me.enid = DLookup(" [usertmp]![userid] ", "usertmp", " [usertmp]![id] = " & 1) " это код юзера созранается в Me.enid.ControlSource = "IDENERGY здес нету ошибки и без этово так деалет эту я на другом акссеси тоже попробывал и на другом винде тоже всё тоже самое

  Ответить  
 
 автор: ddi   (02.06.2011 в 17:19)   личное сообщение
 
 

Силblч такое раз в жизни случается :)

  Ответить  
 
 автор: Дядя Федор   (03.06.2011 в 08:11)   личное сообщение
 
 

Я не утверждаю, что этот код влияет на поведение формы.
Я просто спрашиваю, что отражается в me.enid. Код пользователя или поле IDENERGY.
Кажется, что это разные данные.
Это то же самое, что написать в математике
x=1
x=2
Чему равен х?
Таки образом первое присвоение бессмысленно.

и нет ответа на :
зачем контролам присваивать источник. может к форме прилепить запрос и поля напрямую связать.


вот и снайп отмечал
А чего ей не мерцать-то
сначала форма грузит свои source потом вы их кодом переписываете
это реакция на двойную работу

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

даные в поле берутца отсуда me.enid равен DLookup(" [usertmp]![userid] ", "usertmp", " [usertmp]![id] = " & 1)
а сохранается в Me.enid.ControlSource = "IDENERGY

  Ответить  
 
 автор: Дядя Федор   (03.06.2011 в 08:20)   личное сообщение
 
 

????
и это работает?
Тогда уж их надо поменять местами.
Или я чего-то не догоняю.

  Ответить  
 
 автор: Дядя Федор   (03.06.2011 в 08:20)   личное сообщение
 
 

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

Да работает нет как поминят местами сперва надо взять данние а уш патом где сохранять
пс поменял выдаёт ошибку а так работает не жалуюсь

  Ответить  
 
 автор: Дядя Федор   (03.06.2011 в 08:41)   личное сообщение
 
 

Me.enid.ControlSource = "IDENERGY" - это источник данных.
Т.е. в поле enid отражаются на форме данные "IDENERGY"?
Зачем тогда первое присвоение?
Просто теоретически интересно.
А что стоит в источнике данных формы? Таблица, запрос.

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

нет же сахронаются в "idenergy"
Forms("en").Recordset.AddNew непозвалает чтобы дание бралис из "idenergy"
в другой кнопке уже уоманда для сохранения
Private Sub only_save_Click()
...........................
DoCmd.RunCommand acCmdSaveRecord
............................
End Sub

  Ответить  
 
 автор: Дядя Федор   (03.06.2011 в 09:03)   личное сообщение
 
 

теперь понял. это форма для добавления записи.

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

Да:)

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

как я понял мою проблему и в микрософте несмогут решить)

  Ответить  
 
 автор: Дядя Федор   (03.06.2011 в 09:07)   личное сообщение
 
 


Do While Timer < start + PauseTime
Loop
If Timer < start + PauseTime Then
Finish = Timer

не в этом ли причина мерцания?

  Ответить  
 
 автор: Дядя Федор   (03.06.2011 в 09:10)   личное сообщение
 
 

Вообще реализация добавления оригинальная.
Может проще сделать.
Пустые поля.
заполнить что надо и запросом добавить.
При этом, можно сделать и откат.
(Отмену действия)

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

Дядя Федор нет это в форуме сказале я написал не сработало :)
..............................

Спосиба всем сам решил проблему правда непониаю как:)
...............................

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

ПС каму интерестно проблема была в языке в свойствах на поле столял другой язык поменял сроботало) но паевился такой вапрос как через ВБА изменит язык ввода

  Ответить  
 
 автор: Дядя Федор   (03.06.2011 в 09:48)   личное сообщение
 
 

me.POLE.KeyboardLanguage = 0 'система
me.POLE.KeyboardLanguage = 1 'русский
а что стояло?

  Ответить  
 
 автор: ddi   (03.06.2011 в 10:00)   личное сообщение
 
 

я по другому зделал
Option Compare Database
Public Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long
Public Const KLF_ACTIVATE = 1

LoadKeyboardLayout "00000419", KLF_ACTIVATE ' русская
японская:)

  Ответить  
 
 автор: Дядя Федор   (03.06.2011 в 10:02)   личное сообщение
 
 

а была японская?

  Ответить  
 
 автор: ddi   (03.06.2011 в 10:06)   личное сообщение
 
 

Нет японски сами японцы незнают зачем мне японски вставить просто я с языковами параметрами работал в винде ну наверно настройки отуда а в поле только цыфри занасилис патаму и не замичал вплоть да сегодня

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

Вот то, что Вам поможет - там в конце то, что нами сотворено - помогает оно!!!

http://hiprog.com/forum/read.php?id_forum=1&id_theme=9162&page=1

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