0
Hi, I’m new to that language. I am creating a student registration form with SQL server 2008 and connection .ADO. At the time of entering and saving the registration data the sign up button inserted two repeated lines.
Here is the code of the registration button:
'------------Botão CADASTRAR--------------
Private Sub CmbCadastrar_Click()
SQL = "INSERT INTO alunos(nome,idade,datanasc) VALUES ('" + TextNomeAluno + "', '" + TextIdade + "', '" + TextDataNasc + "')"
If TextNomeAluno = "" Then
MsgBox "CAMPO NOME VAZIO!!! Por favor, insira os valores corretos", vbExclamation
TextNomeAluno.SetFocus
Exit Sub
End If
If TextIdade = "" Then
MsgBox "CAMPO IDADE VAZIO!!! Por favor, insira os valores corretos", vbExclamation
TextIdade.SetFocus
Exit Sub
End If
If TextDataNasc = "" Then
MsgBox "CAMPO DATA VAZIO!!! Por favor, insira os valores corretos", vbExclamation
TextDataNasc.SetFocus
Exit Sub
End If
Set rs = New ADODB.Recordset
rs.Open SQL, cn, adOpenKeyset, adLockReadOnly
MsgBox "DADOS CADASTRADOS COM SUCESSO.", vbInformation
cn.Execute SQL
End Sub
'-------- Botão LIMPAR LISTA-------------
Private Sub CmbLimpaLista_Click()
LstvAlunos.ListItems.Clear
End Sub
'-------- Botão LIMPAR------------------
Private Sub CmbLimpar_Click()
TextNomeAluno.Text = Empty
TextIdade.Text = Empty
TextDataNasc.Text = Empty
End Sub
'---------Botão LISTAR-------------------
Private Sub CmbListar_Click()
Set cn = New ADODB.Connection
cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;pwd=hcac10;Initial Catalog=db_Escola;Data Source=. "
Set rs = New ADODB.Recordset
'SQL = "SELECT codaluno,nome,idade,CONVERT(VARCHAR(12),datanasc,103) FROM dbo.alunos"
SQL = "SELECT * FROM alunos"
rs.Open SQL, cn, adOpenKeyset, adLockReadOnly
Do While Not rs.EOF
Set item = LstvAlunos.ListItems.Add(, , rs.Fields("codaluno"))
item.SubItems(1) = rs.Fields("nome")
item.SubItems(2) = rs.Fields("idade")
item.SubItems(3) = rs.Fields("datanasc")
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
End Sub
Very strange this, there must be something calling your button method twice and caching the information , but you can try to do this,
"if(not exists(select * from alunos where nome = '" + TextNomeAluno + "' and idade = '" + TextIdade + "' and datanasc = '" + TextDataNasc + "'))
 INSERT INTO alunos(nome,idade,datanasc) VALUES ('" + TextNomeAluno + "', '" + TextIdade + "', '" + TextDataNasc + "')"
and changes to stay after field validations.– Marco Souza
This giving syntax error
– Moisés Ramos
age is an int field? if you remove the simple quotes from '" + Textidade + "'
– Marco Souza
Yes it is an int field.
– Moisés Ramos
How the change turned out and what error it made
– Marco Souza
Expected Expression
– Moisés Ramos