Jump to content
Guest miguelfreitas

Combo-box que permite escolher dia para imprimir

Recommended Posts

Guest miguelfreitas

Boa-tarde

vou tentar expressar-me direitinho:

o meu programa é de gestão de stocks, o utilizador tem acesso a um formulário, onde contém uma list box com todas referencias na BD, ao fazer duplo clique na referencia, abre outro formulário a pedir para inserir a quantidade vendida. Ou seja, form_vendas, ao confirmar a venda é automaticamente guardado na tabela (vendas) a hora&data em que registo foi guardado, através deste código:

strSQL = "INSERT INTO nome_tabela (LogData) Values(Now())"

Ficando assim na tabela : "18-05-2011 17:54:21"

Pronto, criei um Relatório, que mostra todas as vendas feitas, mas pediram-me para fazer algo diferente, que vou explicar:

Criei um formulário:

56333060.jpg

Nessa combobox deveria conter todos os dias, se todos os dias num intervalo entre 10 de maio e 20 de maio tivessem sido efectuadas vendas, nessa combobox deveria aparecer 10-05-2011,11-05-2011,... para o utilizador poder escolher o dia pretendido (vamos supor dia 15-05-2011), e após o utilizador carregar na tecla imprimir, automaticamente corria um código que ia buscar só as vendas efectuadas no tal dia 15, ou seja, ia criar um relatório com todas as vendas desde as 00:00 até as 23:59 de 15-05-2011.

Espero que me tenha feito entender.

Agradeço muito a ajuda que me possam vir a dar desde ja,

Miguel Freitas :)

Share this post


Link to post
Share on other sites
herty

Desculpa-me mas não consegui perceber muito bem a tua duvida.

Tas com dificuldade em aparecer as datas na combo?

Ao correr o teu dito "codigo"?

Share this post


Link to post
Share on other sites
Andrepereira9

Boas

Fiz o código com Base de Dados em Acess. Se utilizares SQl, e não souberes passar para SQL diz

Buscar as datas à Base de Dados, e preencher a combobox, apenas com 1 data de cada dia (evitar datas repetidas)

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
   Dim ligação As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\Administrador\Ambiente de trabalho\BD.accdb;Persist Security Info=False;"
   Dim sql As String = "Select * from Dados;"
   Dim connection As New OleDbConnection(ligação)
   Dim command As New OleDbCommand(sql, connection)
   connection.Open()
     Try
       Dim leitor As OleDbDataReader = command.ExecuteReader
         If leitor.HasRows Then
            While leitor.Read
               Dim aux As Date = leitor.Item("Data")
               If ComboBox1.Items.Count = 0 Then
                   ComboBox1.Items.Add(aux.Date)
               Else
                   Try
                       For Each item In ComboBox1.Items
                         If item.ToString = aux.Date.ToString Then
                              Exit For
                         Else
                              ComboBox1.Items.Add(aux.Date)
                         End If
                      Next
                   Catch
                   End Try
                End If
            End While
        End If   
     Catch
     End Try
   connection.Close()
   ComboBox1.Sorted = True
End Sub

Ir buscar os dados da data seleccionada

Private Sub Imprimir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Imprimir.Click
   Dim Data As Date = ComboBox1.SelectedItem
   Dim ligação As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\Administrador\Ambiente de trabalho\BD.accdb;Persist Security Info=False;"
   Dim sql As String = "Select * from Dados where [Data] like '" + "%" + Data + "%" + "';"
   Dim connection As New OleDbConnection(ligação)
   Dim command As New OleDbCommand(sql, connection)
   command.Parameters.Add("@Data_Imprimir", OleDbType.VarChar).Value = Data
   connection.Open()
     Try
        Dim leitor As OleDbDataReader = command.ExecuteReader
           If leitor.HasRows Then
              While leitor.Read
                    MsgBox(leitor.Item("Nome"))
                    MsgBox(leitor.Item("Morada"))
                    MsgBox(leitor.Item("Idade"))
              End While
           End If
     Catch
     End Try
   connection.Close()
End Sub

EDIT: Só agora é que reparei que isto está no Tópico de VBA

Estás a utilizar VBA (Office,... ) ou VB.NET (Visual Studio)?


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
herty

Mas em especifico qual é a tua duvida?

Não tas à espera que eu leia esse codigo todo sem saber o que não funcione.

Share this post


Link to post
Share on other sites
bar

Mas em especifico qual é a tua duvida?

Não tas à espera que eu leia esse codigo todo sem saber o que não funcione.

Não sei se percebes-te quem mandou o código?


Nem tocam na xixa.

Share this post


Link to post
Share on other sites
Guest miguelfreitas

Obrigado a todos :)

Resolução :

a combo box deverá ter o nome de cboData e o botão deverá ter o seguinte código:

Private Sub nomebotão_Click()

Dim rpt As Report
Dim sSQL As String

sSQL = "SELECT * FROM nome_tabela WHERE DateValue([nome_data_hora])=Forms!nome_formulário!cboData"

DoCmd.OpenReport "vendas", acViewDesign, , , acHidden
Set rpt = Application.Reports("vendas")

rpt.RecordSource = sSQL

DoCmd.Close acReport, "vendas", acSaveYes

DoCmd.OpenReport "vendas", acViewPreview
Set rpt = Nothing
End Sub

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.