|
|
|
| В Access 2002 есть фомра, тексбоксы и комбобоксы которой заполняются значениями из таблицы. Значения в тексбоксах и комбобоксах пользователь может менять. После внесения изменений выполняется запрос на обновление на основании значений текстбоксов и комбобоксов. Но корректно запрос выполняется только со второго нажатия на кнопку, вызывающую запрос на обновление, т.е. первый раз запрос срабатывает с дефолтовыми значениями текстбоксов и комбобоксов и только во второй - с поправленными. Как это можно поправить? | |
|
| |
|
|
|
|
| вот код, запускающий запрос на обновление. Если я правильно понял вопрос.
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
|
| |
|
| |
|
|
|
| А если в начале
а затем запрос. | |
|
| |
|
|
|
|
| Странно, но не помогло, ругается на 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
|
Такая же ошибка | |
|
| |
|
|
|
|
ChPolFrm.Dirty = False
ChPolSql = "update POLICY set INSURER_ID=" & .......
|
такой вопрос кнопка Command43 находится в форме "CHANGE_POLICY" ?
если - да, то есть смысл использовать ME - ссылка на текущюю форму
еще мне не совсем понятна запись
Dim Frm As db1.[Form_POLICY Query]
db1 - это что? это какая-то другая БД? | |
|
| |
|
|
|
| >еще мне не совсем понятна запись
>Dim Frm As db1.[Form_POLICY Query]
>db1 - это что? это какая-то другая БД?
Как только поправил Dim (убрал db1.) все сразу заработало нормально. Спасибо большое. | |
|
| |