¿Es posible utilizar la herramienta solver de excel en access?
1 Respuesta
Respuesta de luis45ccs
1
1
luis45ccs, Realizo sistemas en access y vb independientemente
No directamente Pero puedes manejar excel desde access y usarlo
Gracias estimado, ¿sería posible me orientaras un poco en como se puede hacer eso?
Manejar excel a trabes de access es difícil te mando un ejemplo al final no te lo recomiendo te recomiendo que uses el vb de excel directamente, o que uses otra forma que no sea solver, tal vez allá otra forma de hacerlo
Te mando dos ejemplos Private Sub AccessExcell_Click() Dim H As Long Dim V As Long Dim MiBase As Database Dim MiTabla As Recordset On Error GoTo ErrorExcel Dim objExcel As Excel.Application 'Set MiBase = OpenDatabase(CurrentProject.Path & "\db1.mdb") 'Esta linea anterior, por si deseamos abrir una tabla de cualquier 'otra MDB. En este ejemplo abrimos una tabla Local (Datos). Set MiBase = CurrentDb Set MiTabla = MiBase.OpenRecordset("SELECT * FROM Datos ORDER BY Nombre ASC", dbOpenDynaset) If MiTabla.RecordCount = 0 Then MsgBox "La base de datos esta vacia", vbCritical + vbOKOnly, "AVISO" Exit Sub End If Set objExcel = New Excel.Application objExcel.Visible = True 'determina el numero de hojas que se mostrara en el Excel objExcel.SheetsInNewWorkbook = 1 'Crea el Libro objExcel.Workbooks.Add With objExcel.ActiveSheet .Range(.Cells(1, 1), .Cells(1, 4)).Borders.LineStyle = xlContinuous .Cells(3, 1) = "NOMBRE" .Cells(3, 2) = "DIRECCION" .Cells(3, 3) = "POBLACION" .Cells(3, 4) = "CANTIDAD" .Range(.Cells(3, 1), .Cells(3, 4)).Font.Bold = True .Columns("D").HorizontalAlignment = xlHAlignRight .Columns("A").ColumnWidth = 30 .Columns("B").ColumnWidth = 30 .Columns("C").ColumnWidth = 30 .Columns("D").ColumnWidth = 15 End With objExcel.ActiveSheet.Cells(1, 1) = "BASE DE DATOS de ACCESS A EXCEL" objExcel.ActiveSheet.Range(objExcel.ActiveSheet.Cells(1, 1), objExcel.ActiveSheet.Cells(1, 4)).HorizontalAlignment = xlHAlignCenterAcrossSelection With objExcel.ActiveSheet.Cells(1, 1).Font .Color = vbRed .Size = 14 .Bold = True End With V = 4 H = 1 Do While Not MiTabla.EOF DoEvents objExcel.ActiveSheet.Cells(V, H) = MiTabla.Fields!nombre objExcel.ActiveSheet.Cells(V, H + 1) = MiTabla.Fields!Direccion objExcel.ActiveSheet.Cells(V, H + 2) = MiTabla.Fields!Poblacion objExcel.ActiveSheet.Cells(V, H + 3) = MiTabla.Fields!Cantidad V = V + 1 MiTabla.MoveNext Loop V = V + 3 objExcel.Range(objExcel.Cells(V, 1), objExcel.Cells(V, 4)).Borders.LineStyle = xlContinuous objExcel.ActiveSheet.Range(objExcel.ActiveSheet.Cells(V, 1), objExcel.ActiveSheet.Cells(V, 4)).HorizontalAlignment = xlHAlignCenterAcrossSelection objExcel.ActiveSheet.Cells(V, 1) = "Francisco Javier García Aguado: Código Web del Programador" MiBase.Close Set objExcel = Nothing Exit Sub ErrorExcel: MsgBox "Ha ocurrido un error de conexión con Excel." _ & Chr(13) & Chr(13) & "Error : " & Err.Number _ & Chr(13) & "Info : " & Err.Description _ & Chr(13) & "Objeto : " & Err.Source _ & Chr(13) & Chr(13) & "Revisa las referencias y la ruta de la base de datos. ", vbCritical, "Paco Avisa: Error al conectar con Excel" Dim objExcel As Excel.Application, r As Recordset Set objExcel = New Excel.Application objExcel.Workbooks.Open "Aplicacion.xls" Set r = CurrentDb.OpenRecordset("Select * from columnas") 'objExcel.Cells(1,1) For a = 1 To 20 r.AddNew r.Fields(0) = objExcel.Cells(a, 1) r.Fields(1) = objExcel.Cells(a, 2) r.Update Next