Opa Galera, sou novo aqui no fórum e tenho uma dúvida, já havia achado um tópico referente ao assunto mas não consegui resolver meu problema, como o tópico estava como Resolvido não sei se poderia postar.
Bom
Tenho um código meio curto que estou usando para cadastrar Oficios, mas não está funcionando muito bem, poderiam dar uma olhada?
Option Compare Database
Public Comando As String
Public banco As Database
Public dataset As Recordset
Function Conecta()
Set banco = CurrentDb
End Function
Function valida_selecao()
Set dataset = banco.OpenRecordset(Comando, dbOpenDynaset)
End Function
*****___******
Option Compare Database
Public numCod As Integer 'variavel que guardara o código gerado no método GerarCodigo, e que sera usado para Cadastrar Claro
Private Sub CmdAleatorio_Click()
Comando = "Select count(*) as quantidade from TabCadOficio" ' conta quantos registro há na memória e cria um campo virtualmente chamado quantidades
valida_selecao
Dim qtd As Integer
qtd = dataset("quantidade")
Randomize (Second(Time))
Dim oficio As Integer
oficio = Int(Rnd * qtd) + 1
Comando = "select * from TabCadOficio where Oficio=" & oficio
valida_selecao 'preenche o dataser
txtoficio = dataset("Oficio")
txtano = dataset("Ano")
txttipo = dataset("Tipo")
txtLogradouro = dataset("Logradouro")
txtBairro = dataset("bairro")
End Sub
Private Sub CmdAlterar_Click()
Comando = "update TabCadOficio set Oficio='" & txtoficio & "', Tipo='" & txttipo & "', Logradouro='" & txtLogradouro & "', Bairro=" & txtBairro & " where Oficio=" & txtoficio 'atualiza as informações do codigo informado
banco.Execute (Comando)
MsgBox ("Atualização Efetuada com Sucesso!"), vbInformation + vbOKOnly, "Sucesso ao Atualizar"
Limpar 'chama metodo limpar
cmdCadastrar.Enabled = True
CMDConsultar.Enabled = True
cmdAlterar.Enabled = False
cmdExcluir.Enabled = False
txtoficio.Enabled = True
End Sub
Private Sub cmdCadastrar_Click()
If txtoficio <> "" And txttipo <> "" And txtLogradouro <> "" And txtBairro <> "" Then
GerarCodigo 'chama o metodo que haviamos criado
Comando = "Insert into TabCadOficio(Oficio, Ano, Tipo,Logradouro,Bairro) values (" & numCod & "," & txtoficio & "," & txtano & ",'" & txttipo & "','" & txtLogradouro & "','" & txtBairro & "')"
banco.Execute (Comando)
MsgBox ("Os dados foram cadastrados com sucesso!"), vbInformation + vbOKOnly, "Cadastro"
Limpar 'chamamos o metodo aki!
Else
MsgBox ("Necessário informar os dados para efetuar o cadastro!"), vbInformation + vbOKOnly, "Dados Necessários"
End If
End Sub
Private Sub CmdConsultar_Click()
If txtoficio <> "" Then
Comando = "Select * from TabCadOficio where Oficio=" & txtoficio
valida_selecao
If dataset.RecordCount <> 0 Then
txtoficio = dataset("Oficio")
txtano = dataset("Ano")
txttipo = dataset("Tipo")
txtLogradouro = dataset("Logradouro")
txtBairro = dataset("Bairro")
cmdAlterar.Enabled = True
cmdExcluir.Enabled = True
cmdCadastrar.Enabled = False
CMDConsultar.Enabled = False
txtoficio.Enabled = False
Else
MsgBox ("Não foi achado nenhum registro com o código informado!"), vbInformation + vbOKOnly, "Nenhum Registro"
End If
Else
MsgBox ("Necessário informar um Ofício para efetuar a consulta!"), vbInformation + vbOKOnly, "Ofício Necessário!"
End If
End Sub
Private Sub CmdExcluir_Click()
Dim resp
resp = MsgBox("Deseja realmente excluir os dados?!", vbQuestion + vbYesNo, "Exclusão")
If resp = vbYes Then
Comando = "delete * from TabCadOficio where Oficio=" & txtoficio
banco.Execute (Comando) 'executa o comando delete acima
MsgBox ("Exclusão realizada com sucesso!"), vbInformation + vbOKOnly, "Sucesso ao Excluir!"
End If
Limpar 'chama metodo limpar
cmdCadastrar.Enabled = True
CMDConsultar.Enabled = True
cmdAlterar.Enabled = False
cmdExcluir.Enabled = False
txtoficio.Enabled = True
End Sub
Private Sub CmdRelatorio_Click()
Dim resp
resp = MsgBox("Deseja abri o relatório para impressão dos dados?", vbQuestion + vbYesNo, "Relatório")
If resp = vbYes Then
DoCmd.OpenReport "OficiosCadastrados", acViewPreview
Else
DoCmd.OpenReport "OficiosCadastrados", acViewReport
End If
End Sub
Private Sub Comando18_Click()
Limpar
End Sub
Private Sub Form_Load()
Conecta
End Sub
Sub GerarCodigo()
Comando = "select * from TabCadOficio order by Oficio Desc"
valida_selecao
If dataset.BOF = True Then
numCod = 1 ' e o numero de código irá ser = 1, pq é o primeiro registro
Else
numCod = dataset("Oficio") + 1
End If
End Sub
Sub Limpar()
txtoficio = Empty
txtano = Empty
txttipo = Empty
txtLogradouro = Empty
txtBairro = Empty
End Sub
P.S. o código estou usando do site:
https://www.youtube.com/watch?v=oekUQSWYxDc
Autor: Vitor Silva Lima
*com alterações
Bom
Tenho um código meio curto que estou usando para cadastrar Oficios, mas não está funcionando muito bem, poderiam dar uma olhada?
Option Compare Database
Public Comando As String
Public banco As Database
Public dataset As Recordset
Function Conecta()
Set banco = CurrentDb
End Function
Function valida_selecao()
Set dataset = banco.OpenRecordset(Comando, dbOpenDynaset)
End Function
*****___******
Option Compare Database
Public numCod As Integer 'variavel que guardara o código gerado no método GerarCodigo, e que sera usado para Cadastrar Claro
Private Sub CmdAleatorio_Click()
Comando = "Select count(*) as quantidade from TabCadOficio" ' conta quantos registro há na memória e cria um campo virtualmente chamado quantidades
valida_selecao
Dim qtd As Integer
qtd = dataset("quantidade")
Randomize (Second(Time))
Dim oficio As Integer
oficio = Int(Rnd * qtd) + 1
Comando = "select * from TabCadOficio where Oficio=" & oficio
valida_selecao 'preenche o dataser
txtoficio = dataset("Oficio")
txtano = dataset("Ano")
txttipo = dataset("Tipo")
txtLogradouro = dataset("Logradouro")
txtBairro = dataset("bairro")
End Sub
Private Sub CmdAlterar_Click()
Comando = "update TabCadOficio set Oficio='" & txtoficio & "', Tipo='" & txttipo & "', Logradouro='" & txtLogradouro & "', Bairro=" & txtBairro & " where Oficio=" & txtoficio 'atualiza as informações do codigo informado
banco.Execute (Comando)
MsgBox ("Atualização Efetuada com Sucesso!"), vbInformation + vbOKOnly, "Sucesso ao Atualizar"
Limpar 'chama metodo limpar
cmdCadastrar.Enabled = True
CMDConsultar.Enabled = True
cmdAlterar.Enabled = False
cmdExcluir.Enabled = False
txtoficio.Enabled = True
End Sub
Private Sub cmdCadastrar_Click()
If txtoficio <> "" And txttipo <> "" And txtLogradouro <> "" And txtBairro <> "" Then
GerarCodigo 'chama o metodo que haviamos criado
Comando = "Insert into TabCadOficio(Oficio, Ano, Tipo,Logradouro,Bairro) values (" & numCod & "," & txtoficio & "," & txtano & ",'" & txttipo & "','" & txtLogradouro & "','" & txtBairro & "')"
banco.Execute (Comando)
MsgBox ("Os dados foram cadastrados com sucesso!"), vbInformation + vbOKOnly, "Cadastro"
Limpar 'chamamos o metodo aki!
Else
MsgBox ("Necessário informar os dados para efetuar o cadastro!"), vbInformation + vbOKOnly, "Dados Necessários"
End If
End Sub
Private Sub CmdConsultar_Click()
If txtoficio <> "" Then
Comando = "Select * from TabCadOficio where Oficio=" & txtoficio
valida_selecao
If dataset.RecordCount <> 0 Then
txtoficio = dataset("Oficio")
txtano = dataset("Ano")
txttipo = dataset("Tipo")
txtLogradouro = dataset("Logradouro")
txtBairro = dataset("Bairro")
cmdAlterar.Enabled = True
cmdExcluir.Enabled = True
cmdCadastrar.Enabled = False
CMDConsultar.Enabled = False
txtoficio.Enabled = False
Else
MsgBox ("Não foi achado nenhum registro com o código informado!"), vbInformation + vbOKOnly, "Nenhum Registro"
End If
Else
MsgBox ("Necessário informar um Ofício para efetuar a consulta!"), vbInformation + vbOKOnly, "Ofício Necessário!"
End If
End Sub
Private Sub CmdExcluir_Click()
Dim resp
resp = MsgBox("Deseja realmente excluir os dados?!", vbQuestion + vbYesNo, "Exclusão")
If resp = vbYes Then
Comando = "delete * from TabCadOficio where Oficio=" & txtoficio
banco.Execute (Comando) 'executa o comando delete acima
MsgBox ("Exclusão realizada com sucesso!"), vbInformation + vbOKOnly, "Sucesso ao Excluir!"
End If
Limpar 'chama metodo limpar
cmdCadastrar.Enabled = True
CMDConsultar.Enabled = True
cmdAlterar.Enabled = False
cmdExcluir.Enabled = False
txtoficio.Enabled = True
End Sub
Private Sub CmdRelatorio_Click()
Dim resp
resp = MsgBox("Deseja abri o relatório para impressão dos dados?", vbQuestion + vbYesNo, "Relatório")
If resp = vbYes Then
DoCmd.OpenReport "OficiosCadastrados", acViewPreview
Else
DoCmd.OpenReport "OficiosCadastrados", acViewReport
End If
End Sub
Private Sub Comando18_Click()
Limpar
End Sub
Private Sub Form_Load()
Conecta
End Sub
Sub GerarCodigo()
Comando = "select * from TabCadOficio order by Oficio Desc"
valida_selecao
If dataset.BOF = True Then
numCod = 1 ' e o numero de código irá ser = 1, pq é o primeiro registro
Else
numCod = dataset("Oficio") + 1
End If
End Sub
Sub Limpar()
txtoficio = Empty
txtano = Empty
txttipo = Empty
txtLogradouro = Empty
txtBairro = Empty
End Sub
P.S. o código estou usando do site:
https://www.youtube.com/watch?v=oekUQSWYxDc
Autor: Vitor Silva Lima
*com alterações