|
Postada em 24/10/2004 18:07 hs
Pessoal, o problema é o seguinte, tenho código abaixo é ao verificar o rs.recordcount, o mesmo vem sempre com o valor zero , mesmo quando o registro existe, permitindo desta forma a criação de registros duplicados, visto que o campo utilizado para consulta não é chave... Onde esta o erro afinal !! ' Abrir a conexão AbrirConexao = Comeco() 'Carrega o Registro da Tabela no Objeto Recordset se existir With rs .ActiveConnection = Con .CursorLocation = adUseClient .CursorType = adOpenStatic .LockType = adLockBatchOptimistic .Open ("select * from MINISTROS Where NOME_DO_MINISTRO = ' " & TxtNomMin.Text & " ' ") .ActiveConnection = Nothing End With 'Se não for encontrado qualquer registro, 'Cria o registro na tabela If rs.RecordCount < 1 Then Inclui_Ministros = Incluir_Min(TxtNomMin, TxtDtInicio, DataSaida) If Inclui_Ministros = True Then LimpaCampos MsgBox COD_MINISTRO_PK & " Ministro Gravado sob nr.", vbOKOnly, "Cadastro de Ministros" rs.Close Else MsgBox "Ministro não Incluído", vbOKOnly, "Inclusão de Ministro" rs.Close End If Else MsgBox Nome_do_Ministro & " - Ministro Já Cadastrado", vbOKOnly, " Cadastro de Ministros " TxtNomMin.SetFocus Exit Sub End If Agradeço a força moçada!!!
|
|
|
|
|
Postada em 24/10/2004 18:43 hs
Olá Jorge! A propriedade RecordCount não é infalível. A melhor forma de verificar se a consulta retornou registros e utilizar a propriedade EOF. Substitua a instrução "If rsRecordCount < 1 Then" por "If Not rs.EOF Then" Abraço!
Messenger: vbdev@uol.com.br
|
TÓPICO EDITADO
|
|
|
|
Poca
|
SETE LAGOAS MG - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 25/10/2004 06:21 hs
Coloque o código de conexão também... Caso esteja usando ADO + arquivo DBF a propriedade recordcount não irá funcionar... aí vc terá que usar DAO. Coloque o código do COMECO() e a parte onde vc instância RS... T+
Imagine um sistema (.exe) que vc pode programar códigos fontes dentro dele, mesmo com ele estando em execução no momento e ainda trabalhando em rede! Ficou confuso ??? Não entendeu como isso é possível ??? Componente: Macro pra VB6 / Desenvolvido por Kraysler. O teu sistema fica com recursos parecido com o que a linguagem SAP oferece. OBS.: Linguagem SAP = R$ 80.000,00 , talvez seja por isso que vc não tenha ouvido falar nela. Baixe um aplicativo Demo do componente: http://www.macrovb.cjb.net
|
|
|
Poca
|
SETE LAGOAS MG - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 25/10/2004 06:27 hs
OPS.... Jorge Wilson, retire o comando ".ActiveConnection = Nothing", vc não pode detonar a conexão com o recorset aberto. Se vc tirar isso é bem capaz de funcionar...
Imagine um sistema (.exe) que vc pode programar códigos fontes dentro dele, mesmo com ele estando em execução no momento e ainda trabalhando em rede! Ficou confuso ??? Não entendeu como isso é possível ??? Componente: Macro pra VB6 / Desenvolvido por Kraysler. O teu sistema fica com recursos parecido com o que a linguagem SAP oferece. OBS.: Linguagem SAP = R$ 80.000,00 , talvez seja por isso que vc não tenha ouvido falar nela. Baixe um aplicativo Demo do componente: http://www.macrovb.cjb.net
|
|
|
snake
|
ITAJUBÁ MG - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 25/10/2004 09:22 hs
ja tive este problema usando DAO !!! a solução foi fazer o que o amigo Caco escreveu em sua mensagem.
|
|
|
|
Postada em 25/10/2004 09:28 hs
Se for só para saber se tem algum registro o certo é tratar o EOF mesmo, agora, se você quiser saber realmente o número de registros da tabela é só dar um .moveMax antes para que o .recordcount seja atualizado.
Claudio Alves.
|
|
|