vb6 declarar variaveis

Goblin

Membro
oi pexoal (again) tou com uma duvida, como e k no vb eu declaro uma variavel para ser usada em todos os forms????? epa eu tentei por o 'Public temp', mas dps kd digo k o 'temp=txtnome.text', fica so nessa form, n passa para outras.... alguem??

obg desde ja :)
 
epa agora tou com outra duvida lol, tipo cm e k eu faço para por exemplo fazer um contador de tempo para saber a kt tempo k o user ta logado e uma cena ond eu ao mesmo tempo k mostre o tempo logado, mostre tb o custo que esta a ter ate ao momento, tipo meia hora custa um euro... alguem me pode dar uma luzes???

thx in advance ;)
 
O que queres saber? Como é que se faz o programa? Os cálculos para custo/tempo?

Dá-nos dúvidas específicas, diz exactamente o que pretendes, e diz o que tens feito (e se puderes, mostra) e talvez te consiga ajudar :) parece-me que estás a tentar desenvolver um programa que serve de contador em cybercafés ou assim.... há partes fáceis e outras não tanto, cada uma em áreas diferentes... tenta ser mais específico nas dúvidas sff ;)

Cumps [[[[[[]]]]]]
angelofwisdom
 
epa ya e isso, tou a fazer um programa para esta loja de informatica ond o k eu tenho k fazer e um programa k faça registos de novos usuarios,o login dos mesmos, e dps tipo kd o usuario faz login aparece uma form assim no canto inferior direito a mostrar à qt tempo ele esta logado e dps o preço(kt ele tem de pagar) ate ao momento, ate agora fiz assim uma mistela :P :
Private Sub Form_Load()
Set banco = OpenDatabase("c:\projecto\acesso.mdb")
Set tabela = banco.OpenRecordset("users", dbOpenTable)
tempo1 = DateAdd("n", 0, Time)
TOPMOST login, True
End Sub

Private Sub Timer1_Timer()
tempo2 = DateAdd("n", 0, Time)
tempototal = tempo2 - tempo1
Label1.Caption = tempototal
End Sub

Private Sub cmdsair_Click()
tempo2 = DateAdd("n", 0, Time)
tempototal = tempo2 - tempo1
End
End Sub

Dim tempototal As Date
Dim tempo2 As Date
Dim tempt As Integer
Dim tempo1 As Date
Dim total As Currency

tipo o k eu tentei por agora foi:

tempt = TimeValue(tempototal)
total = tempt * 0.033
Label2.Caption = FormatNumber(total, 2)

mas no label2 tipo akilo fica sempre '0,00', n muda..............
se me podessem ajudar, agradecia :)
 
Última edição:
Faz um "Msgbox tempt" depois da linha "tempt = TimeValue(tempototal)". Olhando para o código, e tendo em conta o teu erro, pode ser o tempt que está a resultar 0, e terás de verificar o tempototal. Digo eu...
 
angelofwisdom obg por kualker opiniao, mas n consegui perceber cm krias fazer, de kualker das maneiras ja consegui :) aki esta o codigo:

Private Sub Timer1_Timer()
tempo2 = DateAdd("n", 0, Time)
tempototal = tempo2 - tempo1
Label1.Caption = tempototal
tempos = DatePart("s", tempototal)
tempon = DatePart("n", tempototal)
tempos1 = tempos * 0.00055
tempon1 = tempon * 0.033
tempoh = DatePart("h", tempototal)
tempoh1 = tempoh * 2#
total = FormatNumber(tempoh1 + tempon1 + tempos1, 1)
Label2.Caption = total & " €"
End Sub

:002:
 
Boa lobo :D
tás no bom caminho :P

só um aparte ...
por que raio é que aparece aqui um cardinal ?!

Goblin disse:
tempoh1 = tempoh * 2#

BTW o teu programa tem um pequenito bug
se o utilizador fizer login ás 23:00 e sair ás 5:00
o teu programa vai fazer 5 - 23 = -18 horas :P
ou seja 2 x -18 = -36 Euros ... o pessoal da loja ainda
vai ter que dar dinheiro ao sortudo que ficar por lá

:lol: isso por acaso tá aberto depois da meia noite ?! :-D
fica bem
 
lol epa mais uma cena k eu n consigo fazer e o update do tempo e do custo para a base de dados, tipo ja te mostro o codigo, mas ele em vez de por no usuario correspondente, mete num novo registo:

Private Sub cmdsair_Click()
tabela.Index = "indextempocusto"
tabela.Seek "=", login_form.nome 'o nome que o pessoal poe na textbox, na form do login
If tabela.NoMatch Then
MsgBox "Critical Error! Disk C: wil format in 5 seconds! RUN!!! :P", vbCritical, vbOKOnly 'hehe justkiding:P
Else
tabela.AddNew
tabela("tempo") = tempototal
tabela("custo") = total
tabela.Update
End If
login.Hide
frmpago.Show
End Sub
 
eu não tenho aqui o vb6
mas se fizeres isto assim deve resultar

Private Sub cmdsair_Click()
tabela.Index = "indextempocusto"
tabela.Seek "=", login_form.nome 'o nome que o pessoal poe na textbox, na form do login
If tabela.NoMatch Then
MsgBox "Critical Error! Disk C: wil format in 5 seconds! RUN!!! :P", vbCritical, vbOKOnly 'hehe justkiding:P
Else
tabela.edit
tabela("tempo") = tempototal
tabela("custo") = total
tabela.Update
End If
login.Hide
frmpago.Show
End Sub
 
epá que estupido que fui
esqueci-me de explicar

mudei o TABELA.ADDNEW
para TABELA.EDIT

que é o que tens de fazer sempre que quiseres mudar os valores de uma tabela existente
mas para resultar tens de colocar o indice na posição certa da tabela

para isso podes fazer algo deste estilo

tabela.recordset.movefirst ' colocar a tabela na posição zero
do until tabela.recordset.eof

if tabela.("nome").value = login_form.nome then
tabela.edit
tabela("tempo") = tempototal
tabela("custo") = total
tabela.Update
end if

tabela.recordset.movenext

loop
 
eu não tenho aqui o vb6
mas se fizeres isto assim deve resultar

Private Sub cmdsair_Click()
tabela.Index = "indextempocusto"
tabela.Seek "=", login_form.nome 'o nome que o pessoal poe na textbox, na form do login
If tabela.NoMatch Then
MsgBox "Critical Error! Disk C: wil format in 5 seconds! RUN!!! :P", vbCritical, vbOKOnly 'hehe justkiding:P
Else
tabela.edit
tabela("tempo") = tempototal
tabela("custo") = total
tabela.Update
End If
login.Hide
frmpago.Show
End Sub

ñ é "wil" mas sim "will" :004: (BTW este smile é mt bacano xD)
 
hehe mais um problema o estupido n faz update ao custo:

Private Sub cmdsair_Click()
tabela.Index = "indextempocusto"
tabela.Seek "=", login_form.nome
If tabela.NoMatch Then
MsgBox "Critical Error! Disk C: will format in 5 seconds! RUN!!! :P", vbCritical, vbOKOnly
Else
tabela.Edit
tabela("tempo") = tabela("tempo") + tempototal
tabela("custo") = tabela("custo") + total
tabela.Update
End If
login.Hide
frmpago.Show
End Sub


n faço a minima pk.... pessoal?
 
não estás a posicionar o recordset tal como eu te disse
penso que seja isso o problema :P
mas só mm vendo o código!

0.o! :banana:


edit: Olhando melhor axu que te falta escreve antes assim :
em vez de
tabela("custo") = X
tabela("custo").value = X
 
eh puto n ta a dar ja tentei por na tabela o campo custo como inteiro, texto, currency.... mas 0o *** nc faz o update!!! ja tentei por essa cena do .value mas tb n da....... o cabrao nc faz update ao campo do custo agora ate tentei por assim :

Private Sub cmdsair_Click()
tabela.Index = "indextempo" 'um index com os campos usuarios e tempo
tabela.Seek "=", login_form.nome
If tabela.NoMatch Then
MsgBox "Critical Error! Disk C: will format in 5 seconds! RUN!!! :P", vbCritical, vbOKOnly
Else
tabela.Edit
tabela("tempo") = tabela("tempo") + tempototal
tabela.Update
End If
tabela.Index = "indexcusto" ' um index com os campos usuarios e custo
tabela.Seek "=", login_form.nome
If tabela.NoMatch Then
MsgBox "Error!", vbCritical
Else
tabela.Edit
tabela("custo") = tabela("custo") + total 'tb ja tentei por o tabela("custo").value
tabela.Update
End If
login.Hide
frmpago.Show
End Sub



ke ****..........
 
faz-me um favor
posta-me aqui a tabela e o tipo de controlo que estás a utilizar na BD
para que eu possa ter um visão uma beca mais abrangente de como ascoisas estão a
trabalhar por ai
 
? n percebi mto bem.
tou a utilizar o Visual Data Manager do vb6 para criar e modificar a tabela

nome da tabela:users

os campos k tenho sao:
usuarios:text
tempo:date/time
custo:text
codigo:long:autoincrement
password:text

indices:
indextempo:+usuarios;+tempo
indexusers:+usuarios
indexcusto:+usuarios;+custo
indexlogin:+usuarios;+password



era isto????
 
Back
Topo