Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido)Habilitar e desabilitar (access)


Matheus-vb6

Pergunta

Pessoal, antes de tudo quero dizer que não estou criando varios topicos seguidos para spam, mas é que são duvidas diferentes que vão surgindo assim que vou programando, e como eu, iniciante em banco de dados, ajudam bastante!

então... vamos la

No curso aprendi que quando uma vaga é prenchida, ela já tem dono e não pode ser excluida, portanto meu botão excluir seria um desabilitar!

Modulo:

Public Function desabilitar(ByVal intCodigo As Integer) As Variant
cn.Execute "update pessoal set Habilitado= '" & 0 & "'" _
& " where codigo = " & intCodigo

desabilitar = True
End Function

'------

Public Function habilitar(ByVal intCodigo As Integer) As Variant
cn.Execute "update pessoal set Habilitado= '" & "1" & "'" _
& " where codigo = " & intCodigo

habilitar = True
End Function
Botoes:
Private Sub cmdHabilitar_Click()
If txtConsulta.Visible = False Then
txtConsulta.Visible = True
txtConsulta.SetFocus
Else
Dim atual As Variant
atual = desabilitar("1")
If atual = True Then
Call limpar
Else
MsgBox "Erro na atualização.", vbCritical
End If
End If
Call nulo

End Sub
'--
Private Sub cmdDesabilitar_Click()
If txtConsulta.Visible = False Then
txtConsulta.Visible = True
txtConsulta.SetFocus
Else
Dim atual As Variant
atual = desabilitar("0")
If atual = True Then
Call limpar
Else
MsgBox "Erro na atualização.", vbCritical
End If
End If
Call nulo
End Sub

Estou trabalhando com caracteres no access, e 1 é habilitado, 0 desabilitado! meu botao listar no vb está funcionando corretamente, ele só lista os que estão com 1 na area Habilitado... porem os botoes habilitar e desabilitar não alteram o valor la dentro quando pressionados e também não geram erro nenhum... alguém consegue identificar esse problema??

Obrigado desde já!

Editado por Matheus-vb6
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

acho q o erro ta aqui:

atual = desabilitar("1")
e aqui:
atual = desabilitar("0")
primero q você ta chamando a funcao desabilitar() no clique do botao habilitar. e depois q as suas funcoes habilitar() e desabilitar() recebem como parametro o codigo do registro q tem q ser alterado. e você ta passando 0 ou 1. ou seja, ele so vai alterar o codigo 0 ou o codigo 1. você devia passar era o codigo do registro atual. fora isso, umas dicas... da uma olhada e veja q, nas suas funcoes, o parametro ta declarado como inteiro (ByVal intCodigo As Integer). sendo assim, é desnecessario passar o parametro entre aspas. você pudia fazer somente assim:
atual = desabilitar(0)

senao, você vai tar fazendo processamento a mais, realizando uma conversao q você não precisava (de String pra Integer).

e ficando de olho nesse tipo de coisa, vai te ajudar se um dia você for mexer com alguma linguagem q não faca conversao implicita, como o c#.

fora isso, evita tb ficar declarando variaveis como Variant. Variant é um tipo q pode ser qualquer coisa. e assim q você for usar ele tb vai perder tempo fazendo conversao pro tipo em q ela for transformada. Variant so é bom usar quando você não sabe qual o tipo em q ela vai se transformar depois.

no seu caso, você declarou as funcoes e tb as variaveis q receberiam o retorno delas como Variant. mas você simplesmente usou valores True ou False, então você pudia ter declarado como Boolean de uma vez, pra ele não ter q ficar convertendo.

logico q os milisegundos q você vai perder não fazem nenhuma diferenca nesse caso. mas é legal ficar atento a essas coisas, porque quando você for fazer codigos q processem mtos dados, esses detalhes pequenos podem ajudar a agilizar.

alem de q é sempre bom ter nocao de como trabalhar com os diferentes tipos de variaveis. mta gente q programa em asp ou php, onde as variaveis são todas variant, não tem nem nocao q os dados tem tipos diferentes, e sempre acabam tendo problemas.

Pessoal, antes de tudo quero dizer que não estou criando varios topicos seguidos para spam, mas é que são duvidas diferentes que vão surgindo assim que vou programando, e como eu, iniciante em banco de dados, ajudam bastante!

não tem problema, é pra isso q o forum ta ai.

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

Realmente existia erro nessa parte...

no módulo utilizei o código (modulo desabilitar)

Public Function desabilitar(ByVal intCodigo As Integer) As Variant
cn.Execute "update pessoal set Habilitado= '" & 0 & "'" _
& " where codigo = " & frmAgenda.txtConsulta.Text & ""

desabilitar = True
End Function
e no botao (habilitar) - desabilitar só muda o habilitar(1):
Private Sub cmdHabilitar_Click()
If txtConsulta.Visible = False Then
txtConsulta.Visible = True
txtConsulta.SetFocus
Else
Dim atual As Variant
atual = habilitar(1)
If atual = True Then
Call limpar
Else
MsgBox "Erro na atualização.", vbCritical
End If
End If
Call nulo

End Sub

Abraços, duvida resolvida!

Editado por Matheus-vb6
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...