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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Обновление параметров запроса на обновление
 
 автор: Stas   (12.02.2007 в 17:26)   личное сообщение
 
 

В Access 2002 есть фомра, тексбоксы и комбобоксы которой заполняются значениями из таблицы. Значения в тексбоксах и комбобоксах пользователь может менять. После внесения изменений выполняется запрос на обновление на основании значений текстбоксов и комбобоксов. Но корректно запрос выполняется только со второго нажатия на кнопку, вызывающую запрос на обновление, т.е. первый раз запрос срабатывает с дефолтовыми значениями текстбоксов и комбобоксов и только во второй - с поправленными. Как это можно поправить?

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

код своей формы покажите

  Ответить  
 
 автор: Stas   (13.02.2007 в 10:59)   личное сообщение
 
 

вот код, запускающий запрос на обновление. Если я правильно понял вопрос.

Private Sub Command43_Click()
Dim ChPolFrm As Form_CHANGE_POLICY
Dim Frm As db1.[Form_POLICY Query]

Set ChPolFrm = Form_CHANGE_POLICY
Set Frm = db1.[Form_POLICY Query]

DoCmd.SetWarnings False

ChPolSql = "update POLICY set INSURER_ID=" & ChPolFrm.Combo40.Value & _
                                ", POLICY_NUMBER='" & ChPolFrm.POLICY_NUMBER & _
                                "', ICEPT_DATE='" & ChPolFrm.ICEPT_DATE & _
                                "', EXP_DATE='" & ChPolFrm.EXP_DATE & _
                                "', PREMIUM=" & ChPolFrm.PREMIUM.Value & _
                                ", PREMIUM_CUR=" & ChPolFrm.Combo61.Value & _
                                ", FEE_COM='" & ChPolFrm.Combo59.Value & _
                                "', BROK_RATE=" & ChPolFrm.BROK_RATE.Value & _
                                ", COMMISSION=" & ChPolFrm.COMMISSION.Value & _
                                ", CLIENT_ID=" & ChPolFrm.Combo57.Value & _
                                ", BROKER_ID=" & ChPolFrm.Combo49.Value & _
                                ", LOB_ID=" & ChPolFrm.Combo47.Value & _
                                ", NEW_RENWAL='" & ChPolFrm.Combo53.Value & _
                                "', ADDENDUM_NO=" & ChPolFrm.ADDENDUM_NO.Value & _
                                ", IS_GLOBAL='" & ChPolFrm.Combo51.Value & _
                                "', FEE=" & ChPolFrm.FEE.Value & _
                                ", FEE_CURR=" & ChPolFrm.Combo63.Value & _
                                ", PROD_OFFICE=" & ChPolFrm.Combo55.Value & _
                                " where POLICY.ID=" & ChPolFrm.ID

DoCmd.RunSQL ChPolSql
DoCmd.Close acForm, "CHANGE_POLICY", acSaveNo
Frm.Requery
DoCmd.SetWarnings True

End Sub

  Ответить  
 
 автор: АлексейЕ   (13.02.2007 в 11:22)   личное сообщение
 
 

А если в начале

ChPolFrm.Dirty = false
а затем запрос.

  Ответить  
 
 автор: час   (13.02.2007 в 12:42)   личное сообщение
 
 

помогло????

  Ответить  
 
 автор: Stas   (13.02.2007 в 16:28)   личное сообщение
 
 

Странно, но не помогло, ругается на You entered an expression that has an invalid reference to the property Dirty
попробовал сделать как в Helpe

If ChPolFrm.Dirty = False Then
ChPolSql = "update POLICY set INSURER_ID=" & ChPolFrm.Combo40.Value & _
                                ", POLICY_NUMBER='" & ChPolFrm.POLICY_NUMBER & _
                                "', ICEPT_DATE='" & ChPolFrm.ICEPT_DATE & _
                                "', EXP_DATE='" & ChPolFrm.EXP_DATE & _
                                "', PREMIUM=" & ChPolFrm.PREMIUM.Value & _
                                ", PREMIUM_CUR=" & ChPolFrm.Combo61.Value & _
                                ", FEE_COM='" & ChPolFrm.Combo59.Value & _
                                "', BROK_RATE=" & ChPolFrm.BROK_RATE.Value & _
                                ", COMMISSION=" & ChPolFrm.COMMISSION.Value & _
                                ", CLIENT_ID=" & ChPolFrm.Combo57.Value & _
                                ", BROKER_ID=" & ChPolFrm.Combo49.Value & _
                                ", LOB_ID=" & ChPolFrm.Combo47.Value & _
                                ", NEW_RENWAL='" & ChPolFrm.Combo53.Value & _
                                "', ADDENDUM_NO=" & ChPolFrm.ADDENDUM_NO.Value & _
                                ", IS_GLOBAL='" & ChPolFrm.Combo51.Value & _
                                "', FEE=" & ChPolFrm.FEE.Value & _
                                ", FEE_CURR=" & ChPolFrm.Combo63.Value & _
                                ", PROD_OFFICE=" & ChPolFrm.Combo55.Value & _
                                " where POLICY.ID=" & ChPolFrm.ID

DoCmd.RunSQL ChPolSql
End If

Такая же ошибка

  Ответить  
 
 автор: osmor   (13.02.2007 в 16:35)   личное сообщение
 
 


ChPolFrm.Dirty = False 
ChPolSql = "update POLICY set INSURER_ID=" & .......

такой вопрос кнопка Command43 находится в форме "CHANGE_POLICY" ?
если - да, то есть смысл использовать ME - ссылка на текущюю форму

еще мне не совсем понятна запись
Dim Frm As db1.[Form_POLICY Query]
db1 - это что? это какая-то другая БД?

  Ответить  
 
 автор: Stas   (13.02.2007 в 20:08)   личное сообщение
 
 

>еще мне не совсем понятна запись
>Dim Frm As db1.[Form_POLICY Query]
>db1 - это что? это какая-то другая БД?

Как только поправил Dim (убрал db1.) все сразу заработало нормально. Спасибо большое.

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