Programación General > Visual Basic 6.0 e inferiores

 Programa Funciona Bien En Mi Pc Pero En Otros No

(1/2) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa