ONDE TO ERRADO NESSA SQL?
SQL:
O campo STATUS é do tipo SIM/NÃO
tanto o campo tando marcado ou não ele tah colocando o caption = OCUPADO
Call ABRIR_BD_SEM_DATA1
SQL = [Ô]SELECT * FROM MESAS WHERE (MESA = [ô][Ô] & lblMesa.Caption & [Ô][ô])[Ô]
Set rs = BD.OpenRecordset(SQL)
[ô]If Not rs.EOF Then
If rs!Status = True Then lblStatus.Caption = [Ô]Ocupada[Ô]: lblStatus.ForeColor = vbRed Else lblStatus.Caption = [Ô]DisponÃvel[Ô]: lblStatus.ForeColor = vbGreen
[ô]End If
rs.Close
BD.Close
O campo STATUS é do tipo SIM/NÃO
tanto o campo tando marcado ou não ele tah colocando o caption = OCUPADO
Eu faria assim..
SQL = [Ô]SELECT * FROM MESAS WHERE MESA =[ô][Ô] & lblMesa.Caption & [Ô][ô][Ô]
Set rs = BD.OpenRecordset(SQL)
If Not rs.EOF and not rs.Bof Then
If rs!Status = True Then
lblStatus.Caption = [Ô]Ocupada[Ô]: lblStatus.ForeColor = vbRed
Else
lblStatus.Caption = [Ô]DisponÃvel[Ô]: lblStatus.ForeColor = vbGreen
end if
else
msgbox [Ô]Registro não encontrado.[Ô]
End If
Tente assim:
lblStatus.Caption = [Ô]DisponÃvel[Ô]
lblStatus.ForeColor = vbGreen
Call ABRIR_BD_SEM_DATA1
SQL = [Ô]SELECT status FROM Mesas WHERE Mesa LIKE [ô][Ô] & lblMesa.Caption & [Ô][ô][Ô]
Set rs = BD.OpenRecordset(SQL)
If Not rs.EOF Then
If rs.Fields([Ô]status[Ô]) = True Then
lblStatus.Caption = [Ô]Ocupada[Ô]
lblStatus.ForeColor = vbRed
End If
Else
MsgBox [Ô]Mesa não encontrada[Ô], , [Ô]Atenção[Ô]
End If
rs.Close
BD.Close
os 2 códigos q vcs postaram dar a mesma coisa.
Sempre dar [Ô]Ocupado[Ô]
e na tabela somente a mesa 02 e a 04 estão com o STATUS = TRUE
Sempre dar [Ô]Ocupado[Ô]
e na tabela somente a mesa 02 e a 04 estão com o STATUS = TRUE
Aqui deu certo!
Veja o código abaixo e a imagem (acima) com o resultado.
Veja o código abaixo e a imagem (acima) com o resultado.
lblStatus.Caption = [Ô]DisponÃvel[Ô]
lblStatus.BackColor = vbGreen
Dim con As New ADODB.Connection, rs As New ADODB.Recordset
con.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0; [Ô] & _
[Ô]Data Source=[Ô] & App.Path & [Ô]\bd1.mdb[Ô]
rs.Open [Ô]SELECT status FROM Mesas WHERE Mesa LIKE [ô][Ô] & lblMesa.Caption & [Ô][ô][Ô], con
If Not rs.EOF Then
If rs.Fields([Ô]status[Ô]) = True Then
lblStatus.Caption = [Ô]Ocupada[Ô]
lblStatus.BackColor = vbRed
End If
Else
MsgBox [Ô]Mesa não encontrada[Ô], , [Ô]Atenção[Ô]
End If
rs.Close
con.Close
Só tome cuidado com o LIKE, pois ele pode dar mas problema ainda,, por exemplo
se vc deseja consultar a mesa 1
ele vai encontrar a mesa
10
11
12
13......
tudo que tiver [Ô]1[Ô], ele ira trazer..
Outra observação..
Voce ja tem registros na tabela Mesas, pois se tiver ele sempre ira por o ponteiro no primeiro registro. nesse caso voce precisa de outro parametro no seu SQL... é só uma sugestão.. não sei como vc armazena os registros.. mas faça o teste.. limpe toda a tabela e veja o SQL do jeito que esta, pois não tem erro algum.
se vc deseja consultar a mesa 1
ele vai encontrar a mesa
10
11
12
13......
tudo que tiver [Ô]1[Ô], ele ira trazer..
Outra observação..
Voce ja tem registros na tabela Mesas, pois se tiver ele sempre ira por o ponteiro no primeiro registro. nesse caso voce precisa de outro parametro no seu SQL... é só uma sugestão.. não sei como vc armazena os registros.. mas faça o teste.. limpe toda a tabela e veja o SQL do jeito que esta, pois não tem erro algum.
tenho uma tabela chamada MESA com as mesas já cadastradas
COD MESA STATUS
1 MESA 01 FALSE
2 MESA 02 [txt-color=#007100]TRUE[/txt-color]
3 MESA 03 FALSE
4 MESA 04 [txt-color=#007100]TRUE[/txt-color]
5 MESA 05 FALSE
ai quando eu abrir a janela.... no form_load vai ter um codigo que procure a MESA=MESA 02 e veja o status dela... se for TRUE ele deve mudar o label lblStatus para OCUPADA, senao DISPONIVEL
COD MESA STATUS
1 MESA 01 FALSE
2 MESA 02 [txt-color=#007100]TRUE[/txt-color]
3 MESA 03 FALSE
4 MESA 04 [txt-color=#007100]TRUE[/txt-color]
5 MESA 05 FALSE
ai quando eu abrir a janela.... no form_load vai ter um codigo que procure a MESA=MESA 02 e veja o status dela... se for TRUE ele deve mudar o label lblStatus para OCUPADA, senao DISPONIVEL
Tipo assim.... Manda uma cópia do seu BD só com essa tabela e o código do procedimento ABRIR_BD_SEM_DATA1 para a gente tentar te ajudar pois, tudo o que o pessoal acima fez deveria funcionar 100% então, deve ser um detalhe ou na abertura do Banco (via DAO, ADO, etc), a versão do DAO/ADO, etc...
Com esses 2 itens que te pedi, a gendo pode simular para tentar te ajudar mais... Aliás, está usando DAO ou ADO?? Que versão? E a sua versão do JET?
Enfim, enche a gente de informação para podermos ajudar.
Com esses 2 itens que te pedi, a gendo pode simular para tentar te ajudar mais... Aliás, está usando DAO ou ADO?? Que versão? E a sua versão do JET?
Enfim, enche a gente de informação para podermos ajudar.
esse campo STATUS o tipo dele no Banco de Dados esta como Boolean ?....eu faria como Integer....1 Ocupado 0 Disponivel....
DESCOBRIR O ERRO!
tenho um form com 5 commandbutton em Array... cada um possui o nome de uma mesa: MESA 01, MESA 02, ETC
quan clico nem um botão é para ele abrir outro form (o que tem esse codigo ai de cima) para mostrar o status daquela mesa.
ou seja....
ele faz nessa ordem:
-carreha o form Mesas_Itens
-usa o form_load do Mesas_Itens e nao encontra o q quero
-só depois ele muda o caption do lblmesa
já tentei colocar assim:
mas acontece a mesma coisa!
tenho um form com 5 commandbutton em Array... cada um possui o nome de uma mesa: MESA 01, MESA 02, ETC
quan clico nem um botão é para ele abrir outro form (o que tem esse codigo ai de cima) para mostrar o status daquela mesa.
Private Sub cmdMesa_Click(Index As Integer)
Mesas_Itens.Show
Mesas_Itens.lblMesa.Caption = cmdMesa(Index).Caption
End Sub
ou seja....
ele faz nessa ordem:
-carreha o form Mesas_Itens
-usa o form_load do Mesas_Itens e nao encontra o q quero
-só depois ele muda o caption do lblmesa
já tentei colocar assim:
Mesas_Itens.lblMesa.Caption = cmdMesa(Index).Caption
Mesas_Itens.Show
mas acontece a mesma coisa!
já resolvir colocando no chance do label lblmesas
valew gente!
valew gente!
Tópico encerrado , respostas não são mais permitidas