2015-11-24 2 views
0

Итак, вот моя проблема. Я могу получить мою подчиненную форму после того, как она была восстановлена, но я не могу получить ее после того, как будет введена новая информация. Может кто-то, пожалуйста, помогите! Я попытался с помощью RecordsetClone и что не работает, а также другие предложения, и я не был в состоянии получить что-нибудь работатьОбновление подформы после того, как информация добавлена ​​

Private Sub cmdAdd_Click() 

CurrentDb.Execute "INSERT INTO tbl_GroupVolunteers (GroupName, Leader, 
VolunteerName, Email, Phone, EmergencyContact, EmergencyNumber, 
NumberofVolunteers, RegistrationNumber)" & _ 
"VALUES ('" & Me.txtGroupName & "','" & Me.cboLeader & "','" & 
Me.txtVolunteerName & "','" & Me.txtEmail & "','" & Me.txtPhone & "','" & 
Me.txtEmergencyContact & _ 
"','" & Me.txtEmergencyNumber & "','" & Me.txtNumberofVolunteers & "','" & 
Me.txtRegistrationNumber & "')" 

'refresh data 
Me!subformGroupVolunteers.Form.Requery 
'Clear form 
cmdClear_Click 

End Sub 
+0

Возможный дубликат [Ошибка компиляции: метод не найден] (http://stackoverflow.com/questions/33838422/compile-error-method-not-found) – Gustav

+0

Похоже, что это другая проблема, Густав. anecessa - Когда вы говорите, что «не можете заставить его освежиться», что вы имеете в виду? Работает ли код? Разбивается ли это? Это просто ничего не делает? Потому что из отправленного кода выглядит так, что он должен обновляться каждый раз, когда нажата кнопка cmdAdd. –

+1

@JohnnyBones будет обновляться после ввода одной записи, но после нескольких добавлений она не обновится. Однако код действительно работает, я замечаю, что не все добавляются в таблицу, как они должны быть – anecessa

ответ

0

Поместите перерыв в своем коде и шаг через него, чтобы увидеть, где это провал , Я бы предложил выделить функцию Execute. Что-то вроде этого:

Dim sqlStr as String 

sqlStr = "INSERT INTO tbl_GroupVolunteers (GroupName, Leader, 
VolunteerName, Email, Phone, EmergencyContact, EmergencyNumber, 
NumberofVolunteers, RegistrationNumber)" & _ 
"VALUES ('" & Me.txtGroupName & "','" & Me.cboLeader & "','" & 
Me.txtVolunteerName & "','" & Me.txtEmail & "','" & Me.txtPhone & "','" & 
Me.txtEmergencyContact & _ 
"','" & Me.txtEmergencyNumber & "','" & Me.txtNumberofVolunteers & "','" & 
Me.txtRegistrationNumber & "')" 

CurrentDb.Execute sqlStr 

'refresh data 
Me!subformGroupVolunteers.Form.Requery 
'Clear form 
cmdClear_Click 

Или вместо того, чтобы шагать через него, вы можете добавить MessageBox так:

Dim sqlStr as String 

sqlStr = "INSERT INTO tbl_GroupVolunteers (GroupName, Leader, 
VolunteerName, Email, Phone, EmergencyContact, EmergencyNumber, 
NumberofVolunteers, RegistrationNumber)" & _ 
"VALUES ('" & Me.txtGroupName & "','" & Me.cboLeader & "','" & 
Me.txtVolunteerName & "','" & Me.txtEmail & "','" & Me.txtPhone & "','" & 
Me.txtEmergencyContact & _ 
"','" & Me.txtEmergencyNumber & "','" & Me.txtNumberofVolunteers & "','" & 
Me.txtRegistrationNumber & "')" 

Msgbox sqlStr 'Display the string 

CurrentDb.Execute sqlStr 

'refresh data 
Me!subformGroupVolunteers.Form.Requery 
'Clear form 
cmdClear_Click 

Таким образом, вы можете пройти через переменную и убедитесь, что строка, которая будет создаваться функционирует должным образом. Если записи не добавляются правильно, значит, вероятно, потому, что этот оператор INSERT INTO не правильно втягивает данные.

+0

Я предлагаю вам, как говорит этот эксперт, но возьмите strSQL (если вы не можете схватить его из окна сообщения, позаботьтесь об этом, используя 'Debug.Print', чтобы он показывался в окне Immediate) и запускал его как обычный запрос доступа. Сделайте это, создав запрос, перейдите в SQL View и вставьте. http://stackoverflow.com/a/1099570/122139 – Smandoli

+0

@JohnnyBones ни один из них не решает проблему, которую у меня есть, но спасибо за ваши предложения! – anecessa

+0

@johnnyBones, они будут вставляться в таблицу и отображаться в подформе, однако они не будут работать после нескольких раз – anecessa

Смежные вопросы