Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal estou tentando fazer um for para gerar numero de parcela e data de vencimento no Visual Studio 2012 só que as data não está indo na sequência por exemplo
se a primeiro data for 22/08/2015
a segunda tem que ser 22/09/2015 a assim por adiante
Private Sub Gera_Calc()
Using con As OleDbConnection = GetConnection()
Dim i As Integer = 1
Try
con.Open()
Dim sql As String = "INSERT INTO tblReceita(ControleVenda,NumParc,ValorParc,DataVenc) VALUES(?,?,?,?)"
Dim cmd As OleDbCommand = New OleDbCommand(sql, con)
For i = 1 To txtParcela.Text
cmd.Parameters.Add(New OleDb.OleDbParameter("ControleVenda", txtNovo.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("NumParc", i & "/" & txtParcela.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("ValorParc", txtTotalValor.Text / txtParcela.Text))
cmd.Parameters.Add(New OleDb.OleDbParameter("DataVenc", DateAdd("m", i, (txtData.Text))))
Next
cmd.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
Finally
con.Close()
End Try
End Using
End Sub
Eu não entendi como assim
Você está tentando somar meses em um texto, quando você busca o valor como txtData.text o seu retorno é uma string "10/10/2010", por exemplo, o visual studio não sabe qual é o formato de data para ele poder somar os meses. O ideal é você pegar a sua data em String, como você está fazendo hoje, porém converter ela em um formato DateTime, que permite as operações com data. Veja esses links:
https://msdn.microsoft.com/pt-br/library/cc165448.aspx
https://msdn.microsoft.com/en-us/library/1k1skd40(v=vs.110).aspx.aspx)
https://msdn.microsoft.com/en-us/library/zdtaw1bw(v=vs.110).aspx.aspx)
http://stackoverflow.com/questions/919244/converting-a-string-to-datetime
Eu acho que isso não está acontecendo porque o objeto que você está tentando adicionar não é um objeto DateTime e sim um texto (txtData.text). Tente criar um objeto DateTime a partir do texto e adicionar neste objeto