BUSCAR MAIOR VALOR NO BD E RETORNAR UMA VARIAVEL

WILLIANPENA 23/01/2012 13:43:51
#393885
Boa tarde pessoal,

não estou conseguindo fazer uma pesquisa retornando o maior valor de uma tabela no access para um label do meu formulário. olhe se alguem consegue ajudar. Lembro que num_orc não é um campo de autonumeração, mas eu quero buscar o maior número para dar sequencia a ele...

[txt-color=#007100]Set TABELA = BANCO.OpenRecordset([Ô]SELECT max(num_orc) as orcament from orcamento WHERE excluido= false[Ô])

If TABELA.RecordCount > 0 Then

variavel.value = TABELA!num_orc[/txt-color]
HIDDEN 23/01/2012 14:56:45
#393888
Para campos com chave primária, sem autonumeração, uso o seguinte código:

Dim NovoNumero As Long
With Tabela
.Open [Ô]SELECT * FROM orcamento[Ô], Conn, adOpenStatic, adLockOptimistic
If Not .Eof Then
.MoveLast
NovoNumero = !num_orc + 1
Else
NovoNumero = 1
End With


Funciona assim: abro a tabela e verifico se há algum registro nela (If Not .Eof). Se existir, movo o cursor para o último registro e adiciono mais um (NovoNumero = !num_orc + 1). Se não existir nenhum registro, então faço NovoNumero = 1.

A lógica é elementar.
MARCELO.TREZE 23/01/2012 15:00:29
#393889
variavel.value teria de receber False ou True

porem se a variavel for string, long ou int

seria assim

dim Variavel as string

Set TABELA = BANCO.OpenRecordset([Ô]SELECT max(num_orc) as orcament from orcamento WHERE excluido= false[Ô])

If TABELA.RecordCount > 0 Then

variavel = TABELA!orcament[txt-color=#007100] [ô] veja bem vc criou um apelido para max(num_orc) e deve usa-lo[/txt-color]

Msgbox Variavel

End If


WILLIANPENA 23/01/2012 15:23:20
#393890
Goodspeakers o excluido e porque quando alguem exclui o orcamento eu mantenho o registro dele para outros fins, nao o excluo efetivamente..

Pessoal, vou dar uma olhada assim que chegar em casa, valeu!!
LUIZCOMINO 23/01/2012 17:05:55
#393908
Set TABELA = BANCO.OpenRecordset([Ô]SELECT max(num_orc) as orcament from orcamento WHERE excluido= false[Ô])

If TABELA.RecordCount > 0 Then
variavel.value = TABELA!orcament
end if
FILMAN 23/01/2012 17:54:46
#393909
Cara esse procedimento aumenta sempre do ultimo numero porem tambem ao achar um numero faltando completa ele
EX:
Se a sequencia estiver assim
1
2
3
o procedimento coloca o numero 4 que é a sequencia
agora se estiver assim
1
2
4
o procedimento coloca o numero 3 que é o que esta faltando para a sequencia

ve se te ajuda

Public Sub NovoCliente()
Dim vTamTab, X As Integer
Dim variavel As String
Set TABELA = Banco.OpenRecordSet([Ô]SELECT * FROM Orcamento WHERE excluido=false ORDER BY num_orc[Ô])

If TABELA.RecordCount = 0 Then
variavel = 1
Exit Sub
Else
TABELA.MoveFirst
vTamTab = TABELA.RecordCount
For X = 1 To vTamTab
If TABELA!num_orc <> X Then
Exit For
End If
TABELA.MoveNext
Next X
variavel = X
End If

Set TABELA = Nothing

End Sub


espero que te ajude
Tópico encerrado , respostas não são mais permitidas