Причина вашей ошибки, вероятно, заключается в следующей строке:
FrmCadastro.Form.Requery
Здесь вы получаете доступ к объекту, возвращенному свойством Форма вашего Форма Объект . Это свойство обычно используется для доступа к элементу формы подчиненной формы, чтобы получить доступ к полям в подчиненной форме.
В то время как метод Requery применим к основному объекту формы , это не метод объекта, возвращаемый свойством Form объекта Form , что приводит к появившейся ошибке:
Ошибка в ходе выполнения 438: объект не принимает это свойство или метод.
То есть объект Form
, полученный с помощью свойства Form
, не принимает метод Requery
.
Если предположить, что FrmCadastro
является формой, в которой находится кнопка cmdAdd
, то для запроса источника записи формы вы можете использовать:
Me.Requery
Я бы также предложил использовать параметры вместо объединения значений в вашем операторе SQL, так как это избавляет от необходимости обрабатывать переменные типы данных и также предотвращает внедрение SQL.
Например :
Private Sub cmdAdd_Click()
Dim strSQL As String
strSQL = strSQL & "INSERT INTO tbCadastro "
strSQL = strSQL & "( "
strSQL = strSQL & " Requisição, "
strSQL = strSQL & " Cliente, "
strSQL = strSQL & " CPF_CNPJ, "
strSQL = strSQL & " ID_Cartao, "
strSQL = strSQL & " ValorDisponivelCartao, "
strSQL = strSQL & " Tarifa, "
strSQL = strSQL & " ValorBrutoDevolucao, "
strSQL = strSQL & " ValorLiquido, "
strSQL = strSQL & " Motivo, "
strSQL = strSQL & " Observacoes, "
strSQL = strSQL & " DataPagamento, "
strSQL = strSQL & " FormaPagamento, "
strSQL = strSQL & " BancoCredito, "
strSQL = strSQL & " AgenciaCredito, "
strSQL = strSQL & " ContaCredito, "
strSQL = strSQL & " BancoDebito, "
strSQL = strSQL & " AgenciaDebito, "
strSQL = strSQL & " ContaDebito "
strSQL = strSQL & ") "
strSQL = strSQL & "VALUES "
strSQL = strSQL & "( "
strSQL = strSQL & " @txtcliente, "
strSQL = strSQL & " @txtID_Cartao, "
strSQL = strSQL & " @txtCPF_CNPJ, "
strSQL = strSQL & " @txtValorDisponivelCartao, "
strSQL = strSQL & " @txtTarifa, "
strSQL = strSQL & " @txtValorBrutoDevolucao, "
strSQL = strSQL & " @txtValorLiquido, "
strSQL = strSQL & " @txtMotivo, "
strSQL = strSQL & " @txtObservacoes, "
strSQL = strSQL & " @txtDataPagamento, "
strSQL = strSQL & " @txtAgenciaCredito, "
strSQL = strSQL & " @txtContaCredito, "
strSQL = strSQL & " @cboBancoCredito, "
strSQL = strSQL & " @BancoDebito, "
strSQL = strSQL & " @AgenciaDebito, "
strSQL = strSQL & " @ContaDebito, "
strSQL = strSQL & " @cboFormaPagamento, "
strSQL = strSQL & " @cboRequisicao "
strSQL = strSQL & ") "
With CurrentDb.CreateQueryDef("", strSQL)
.Parameters("@txtcliente") = Me.txtCliente
.Parameters("@txtID_Cartao") = Me.txtID_Cartao
.Parameters("@txtCPF_CNPJ") = Me.txtCPF_CNPJ
.Parameters("@txtValorDisponivelCartao") = Me.txtValorDisponivelCartao
.Parameters("@txtTarifa") = Me.txtTarifa
.Parameters("@txtValorBrutoDevolucao") = Me.txtValorBrutoDevolucao
.Parameters("@txtValorLiquido") = Me.txtValorLiquido
.Parameters("@txtMotivo") = Me.txtMotivo
.Parameters("@txtObservacoes") = Me.txtObservacoes
.Parameters("@txtDataPagamento") = Me.txtDataPagamento
.Parameters("@txtAgenciaCredito") = Me.txtAgenciaCredito
.Parameters("@txtContaCredito") = Me.txtContaCredito
.Parameters("@cboBancoCredito") = Me.cboBancoCredito
.Parameters("@BancoDebito") = Me.BancoDebito
.Parameters("@AgenciaDebito") = Me.AgenciaDebito
.Parameters("@ContaDebito") = Me.ContaDebito
.Parameters("@cboFormaPagamento") = Me.cboFormaPagamento
.Parameters("@cboRequisicao") = Me.cboRequisicao
.Execute dbFailOnError
End With
Me.Requery
End Sub