Programación General > Visual Basic 6.0 e inferiores
Programa Funciona Bien En Mi Pc Pero En Otros No
neorent:
que tal amigos del foro, bueno paso a comentar , tengo el siguiente problema estoy haciendo un programa el cual funciona en mi pc, pero en lo otros pc donde quiero ocuparlos no funciona, le dejo el code quizas pueda ser ose o quizas no si alguien me puede dar alguna ayuda, este es el error que me envia en los otros pc:
-2147217900 Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.
otra cosa la variable dg_nombre_archivo puede ser por ejemplo C:/Libro.XLS
y el code
--- Código: Text --- Private Sub CargarPlanillaExcel(dg_nombre_archivo As String)Dim cnn As ADODB.ConnectionDim rs As ADODB.RecordsetDim k As LongDim dn_ind As IntegerDim dg_resultado As String Screen.MousePointer = vbHourglass Me.GrdMovimiento.MaxRows = 0 Me.GrdMovimiento.MaxCols = 0 MsgBox "Confirmacion del nombre de archivo", vbExclamation If dg_nombre_archivo = "" Then Screen.MousePointer = vbDefault Exit Sub End If MsgBox "Confirmacion del directorio de archivo", vbExclamation If Dir(dg_nombre_archivo) = "" Then Screen.MousePointer = vbDefault Exit Sub End If MsgBox "Se intenta establecer la nueva conexion", vbExclamation ' Establecemos una conexión con el libro de trabajo Set cnn = New ADODB.Connection 'With cnn ' .Provider = "Microsoft.Jet.OLEDB.4.0" ' .ConnectionString = "Data Source = " + dg_nombre_archivo ' .Properties("Extended Properties") = "Excel 8.0;HDR=Yes" ' .Open 'End With ' Open the Connection MsgBox "Ruta y nombre del archivo:" + dg_nombre_archivo, vbExclamation cnn.Open _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" + dg_nombre_archivo + ";Extended Properties=""Excel 8.0;HDR=No""" MsgBox "Si puede leer esto entonces no es problema de conexion", vbExclamation MsgBox "Se inicializa el recordset", vbExclamation ' Creamos un nuevo objeto Recordset Set rs = New ADODB.Recordset With rs Set .ActiveConnection = cnn ' Indicamos el nombre de la hoja .Source = "[Hoja1$]" .Open End With MsgBox "Ya se establece una hoja excel determinada para el proceso", vbExclamation If rs Is Nothing Then Screen.MousePointer = vbDefault Exit Sub End If With Me.GrdMovimiento .MaxCols = rs.Fields.Count rs.MoveFirst MsgBox "Se llenan las columnas del nuevo libro", vbExclamation 'Titulos Columnas For k = 1 To .MaxCols .Row = 0 .Col = k .Text = rs.Fields(k - 1).Name Next k rs.MoveFirst Do Until rs.EOF .MaxRows = .MaxRows + 1 .Row = .MaxRows For k = 1 To .MaxCols .Col = k .Text = IIf(IsNull(rs.Fields(k - 1).value), 0, rs.Fields(k - 1).value) Next k rs.MoveNext Loop End With cnn.Close Screen.MousePointer = vbDefault MsgBox "Fin Sub area Problematica", vbExclamation On Error GoTo 0 Exit SubEnd Sub eso amigos espero me puedan ayudar gracias adios. :hola:
ArKaNtOs:
Ya hiciste tu instalador con las dlls y los ocx necesarios?
neorent:
sip con todo entonces no puedo ver que ocurre gracias por la ayuda, bueno me gustaria saber si probaste este code gracias adios
F_Tanori:
Segun veo el problema es que esta tomando el titulo de la hoja
ocurre que si le cambiaron el titulo a la hoja
hoja1,hoja2,hoja3
Inventario,Reporte,Otros Datos
programa marca error porque ya no se llama hoja1
[Hoja1$]
tendrias que llamar
[Inventario$]
pudieras tomar el nombre asi
--- Código: Text --- Dim NombreTabla As StringDim Excel As Object Set Excel = CreateObject("Excel.Application") If Not Excel Is Nothing Then Excel.Workbooks.Open (dg_nombre_archivo) NombreTabla = "[" & Excel.worksheets(1).Name & "$]" Excel.Workbooks.Close Set Excel = NothingEnd If
entonces el el source le pasarias NombreTabla
--- Código: Text --- ... .Source=NombreTabla...
o si utilizas un DataGrid puedes mostrar los datos asi
--- Código: Text --- Set cnn = New ADODB.Connection cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dg_nombre_archivo + ";Extended Properties=""Excel 8.0;HDR=No""" cnn.CursorLocation = adUseClient Set rs = New ADODB.Recordset With rs Set .ActiveConnection = cnn .Open ("SELECT * FROM " & NombreTabla) End With Set Me.GrdMovimiento.DataSource = rs
Suerte !
neorent:
hey amigos muchas gracias por su ayuda se ve aque este foro es a todo dar y siempre me salvan el pescueso jejeje muchas gracias amigos adios
Navegación
[#] Página Siguiente
Ir a la versión completa