|
Postada em 03/02/2008 06:03 hs
Estou com o seguinte problema, na base de dados consta 18 registros, no form usando o recordcount aparece somente o total de 15 registros. Gera confusão na ordem dos registros, o que era para ser o último (moveMax) fica no meio da tabela) sem contar a repetição de dados. Ao abrir o bd com o Visual Data Manager, para navegar na tabela em alguns registros é preciso clicar duas vezes, tanto para o próximo como para o anterior, dando a impressão que o registro está duplicado. Eu uso caheve primária, Tem como resolver isto? Abaixo o trecho que uso para fazer a nova inclusão If TBeletronico.RecordCount = 0 Then cod = "0001" Else TBeletronico.MoveMax cod = TBeletronico("Codigo") + 1 End If TBeletronico.AddNew
|
|
|
|
Roßerto
|
SAO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 03/02/2008 07:40 hs
como vc não colocou como vc abre a tabela, vou colocar como eu faço. sSQL = "SELECT * FROM TABELA ORDER BY CODIGO " SET tb = DBBANCO.OPENRECORDSET(sSQL, dbOpenDynaset) If tb.EOF Then cod = "0001" tb.AddNew 'Atualizando o banco com o CODIGO utilizado, fazendo dessa maneira na hora de salvar seus dados vc deve usar o metodo EDIT, fiz dessa maneira para o sistema trabalhar em rede. tb!Codigo = cod tb.Update Else tb.MoveMax cod = Cdbl(tb!Codigo) + 1 cod = Format(cod,"0000") 'Colocando no formato 0000 tb.AddNew 'Atualizando o banco com o CODIGO utilizado, fazendo dessa maneira na hora de salvar seus dados vc deve usar o metodo EDIT, fiz dessa maneira para o sistema trabalhar em rede. tb!Codigo = cod tb.Update End If Isso é apenas para vc ter uma noção de como fazer. Qualquer duvida volte a postar. Boa Sorte Roberto
|
|
|
|
Postada em 03/02/2008 14:46 hs
Roberto, testei sua duca porém, a propriedade movemax não funciona, deve em razão da forma que é aberto o bd, segue abaixo o código. Set Banco = OpenDatabase(App.path & "Banco1.mdb") Set TBeletronico = Banco.OpenRecordset("TBeletronico", dbOpenTable) TBeletronico.Index = "ProcCodigo"
|
|
|
AAA
|
OURINHOS SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 03/02/2008 15:37 hs
Roberto o bd pelo data manager, vi que os dados estão se repetindo e não consigo atualizá-lo. Se excluo todos os registros, no status aparece -3, ou seja três registros negativos, o "PocCodigo" é o nome da chave primária, observei também que foram sobrepostos alguns registros.
|
|
|
JOM
|
BOM JESUS DA LAPA BA - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 03/02/2008 20:04 hs
Tenta esta rotina, comigo sempre da certo: Dim vCodigo as Long Dim vNovo As Integer vNovo = MsgBox("Deseja fazer novo lançamento ?", vbYesNo + vbQuestion, "Novo") If vNovo = vbYes Then With cmd .ActiveConnection = cnn .CommandType = adCmdText .CommandText = " select max(cod) as ultimocod from tabela" Set rs = .Execute End With With rs If IsNull(rs!ultimocod) Then vCodigo = 1 Else vCodigo = !ultimocod + 1 End If End With
|
|
|
|
Postada em 04/02/2008 05:17 hs
AAA, o forum tem um pequeno BUG, quando escrevemos TB.MOVEL A S T, ele muda para MOVEMAX. Vc está abrindo a sua tabela de modo indexado, tem como vc me mandar o seu form para poder dar uma analizada ? Roberto
|
|
|
|