Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.Office.Interop
Public Class Form1
Dim cadena As New OleDbConnection
Dim m_Excel As Excel.Application
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
cadena.ConnectionString = "Provider=Microsoft.ACE.OLEDB.16.0; Data Source=C:\Desktop\Pruebavisu.accdb"
cadena.Open()
Mostrar()
LLENAR()
MsgBox("Conectado con la Base de Datos", vbCritical, "Aviso")
Catch ex As Exception
MsgBox("No se conceto con la Base de Datos", vbCritical, "Aviso")
End Try
End Sub
Private Sub Mostrar()
Dim oda As New OleDbDataAdapter
Dim ods As New DataSet
Dim consulta As String
consulta = "Select *From Pacientes"
oda = New OleDbDataAdapter(consulta, cadena)
ods.Tables.Add("Pacientes")
oda.Fill(ods.Tables("Pacientes"))
DataGridView1.DataSource = ods.Tables("Pacientes")
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim oda As New OleDbDataAdapter("SELECT * FROM Pacientes " &
" Where FechaRecepcion BETWEEN #" & DateTimePicker1.Value.ToString("MM/dd/yyyy") &
"# AND #" & DateTimePicker2.Value.ToString("MM/dd/yyyy") & "# AND NombreMedicion = '" & ComboBox1.Text & "' ORDER BY Paciente ASC, FechaRecepcion ASC, Column1 ASC", cadena)
Dim ods As New DataSet
oda.Fill(ods)
DataGridView1.DataSource = ods.Tables(0)
End Sub
Private Sub LLENAR()
Dim Da As New OleDbDataAdapter("SELECT distinct NombreMedicion From Pacientes", cadena)
Dim DT As New DataTable
Da.Fill(DT)
ComboBox1.DataSource = DT
ComboBox1.DisplayMember = "NombreMedicion"
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim ColumnaPaciente As Integer
Dim ColumnaFecha As Integer
Dim ColumnaValor As Integer
Dim PrimeraLinea As Integer
Dim CantidadLinea As Integer = 0
Dim ColumnaValorXLS As Integer
For C As Integer = 0 To DataGridView1.Columns.Count - 1
If DataGridView1.Columns(C).HeaderText = "FechaRecepcion" Then ColumnaFecha = C
If DataGridView1.Columns(C).HeaderText = "Paciente" Then ColumnaPaciente = C
If DataGridView1.Columns(C).HeaderText = "VALOR" Then ColumnaValor = C
DataGridView1.Sort(DataGridView1.Columns(ColumnaPaciente), System.ComponentModel.ListSortDirection.Ascending)
Next C
For R As Integer = 0 To DataGridView1.Rows.Count - 1
If DataGridView1.Item(ColumnaPaciente, R).Value = "Alice" Then
If CantidadLinea = 0 Then
PrimeraLinea = R
End If
CantidadLinea += 1
End If
Next R
m_Excel = New Excel.Application
m_Excel.Visible = True
m_Excel.Workbooks.Open("\Desktop\Formato.xlsx")
Dim ColXLS As Integer
Dim LinXLS As Integer = 1
Dim Fecha As String
For ColXLS = 1 To 31
Fecha = m_Excel.Cells(LinXLS, ColXLS).Text
If Fecha = DataGridView1.Item(ColumnaFecha, PrimeraLinea).Value Then
ColumnaValorXLS = ColXLS
Exit For
End If
Next
Dim LineaDGV As Integer = PrimeraLinea
For LinXLS = 2 To CantidadLinea - 1
m_Excel.Cells(LinXLS, ColumnaValorXLS).Text = DataGridView1.Item(ColumnaValorXLS, LineaDGV).Value
LineaDGV += 1
Next LinXLS
End Sub
End Class