Chamuanza Posted November 6, 2009 at 09:20 PM Report Share #295005 Posted November 6, 2009 at 09:20 PM Bem Aja Pessoal Perante o codigo que apresento como poderei atingir o objectivo pretendido, uma vez que segundo já disseram no forum o DatePart(DateInterval.Month, DataMensal) não funciona com o select. No entanto se puser no parametro uma data já funciona o select. O que pretendo é seleccionar todos os nomes que façam anos no mês presente Dim DataMensal As Date = Now TextBox2.Text = DatePart(DateInterval.Month, DataMensal) Try Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\AgendaAnosVB6\AgendaAnosNova\AgendaAnos.mdb" ' Inicia uma ligação à base de dados Using connection As New OleDbConnection(connString) ' Select Statement que irá mostrar todos os registos Dim SQL As String = "Select Nome, Sobrenome, Endereco, Nascimento " & _ "From Amigos " & _ "Where Nascimento = ?" ' Define o DataAdapter e os parâmetros. O DataAdapter guarda a ligação, não ' sendo necessário abrir com o comando connection.Open() Dim da As New OleDbDataAdapter(SQL, connection) 'Assim não funciona 'Dá erro "tipo de dados incorreto na expressão de criterios" da.SelectCommand.Parameters.Add("Nascimento", OleDbType.VarChar).Value = DatePart(DateInterval.Month, DataMensal) 'Colocando uma data funciona bem 'da.SelectCommand.Parameters.Add("Nascimento", OleDbType.Char).Value = "1946-03-30" ' Preenche o Dataset com os valores da base de dados Dim ds As New DataSet da.Fill(ds) ' Preenche a combobox With Me.AmigosDataGridView .DataSource = ds.Tables(0).DefaultView End With ' Insere um novo item geral na posição 0 ' com uma descrição geral a indicar o tipo de lista Dim dr As DataRow dr = ds.Tables(0).NewRow End Using Catch ex As Exception MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) End Try Link to comment Share on other sites More sharing options...
bruno1234 Posted November 6, 2009 at 09:28 PM Report Share #295006 Posted November 6, 2009 at 09:28 PM O q estás a fazer é comparar uma data com um inteiro, n pode ser. Ou trocas o Nascimento por: Month(Nascimento) Month() é uma função de sql server, se tiveres a usar outro motor tens q procurar uma função com o mesmo efeito. Ou então comparas data com data e usas um between na query, mas a 1ª solução parece-me melhor. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
Chamuanza Posted November 6, 2009 at 10:02 PM Author Report Share #295008 Posted November 6, 2009 at 10:02 PM Obrigado pela dica em principio resultou Link to comment Share on other sites More sharing options...
Chamuanza Posted November 7, 2009 at 10:45 AM Author Report Share #295025 Posted November 7, 2009 at 10:45 AM Comoé que douotopico como resolvido ? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now