border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU
  #1 (permalink)  
Antiguo 13-08-2006, 04:20:01
Gran Participación en el Foro
 
Registrado: sep 2005
Posts: 326
DIVEMASTER2002 Valoración +2
Predeterminado Problemas para pasar datos de Excel a Mdb

Uso este codigo para pasar los datos de una planilla Excel a Mdb.

Código:
'Sentencia de Datos a Productos -----------------------------------------

    Do
        strSQL = ""
        cComa = ""
        ' Ir al proximo Valor
        Col = 1
OtraColumna:
         new_value = Trim$(excel_sheet.Cells(Row, Col))
        If Len(new_value) <> 0 Then
            strSQL = strSQL & cComa & "'" & new_value & "'"
            Col = Col + 1
            cComa = ", "
            GoTo OtraColumna
        End If
        
        ' Ve si esta en blanco
        If Len(new_value) = 0 And Col = 1 Then Exit Do

        'Pegar valores en Base de Datos
        db.Execute "INSERT INTO Productos VALUES (" & strSQL & ")"

        Row = Row + 1
    Loop

    ' Cerrar Base de Datos
    db.Close
    Set db = Nothing
Tengo dos problemas, el primero es que cuando en alguna de las filas del excel esta el signo ', me da error y si no le pongo " on error goto ....... " me graba los datos pero esa fila no y no se por que?, creo que es por la validacion de datos, String, Variant...., pero no puedo resolverlo, alguna sugerencia?, y el segundo problema es que me graba apartir del registro 24 de la planilla excel, o sea, todos los registros de la fila 1 a la 23, no los graba en la base de datos y no se por que......mil gracias!!!!!
__________________
Leonardo R. del Canto

- Bs. As. - Argentina -
Responder Con Cita
  #2 (permalink)  
Antiguo 13-08-2006, 07:18:42
Avatar de acalanto
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.307
acalanto ha deshabilitado la reputación
Predeterminado

Antes de crear el valor del campo a insertar elimina cualquier carácter de comilla simple porque de lo contrario la construcción de cadena de campo (Que se encuentra limitada por comillas simples) puede ser errónea.

Desconozco la razón por la que solamente te procesa a partir de la fila 24, tendrás que rastrear la aplicación depurando para ver el valor de la variable Row en cada momento. Fíjate que no inicias esta variable y a lo mejor puede contener un valor inicial que no estás controlando adecuadamente.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #3 (permalink)  
Antiguo 13-08-2006, 11:10:29
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.490
J.M.Movilla Valoración +2
Predeterminado

Para eliminar las comillas simples de las celdas, detrás de la línea new_value = Trim$(excel_sheet.Cells(Row, Col)), escribes:
Código:
Do
    n = InStr(New_Value, "'")
    If n <> 0 Then
        New_Value = Left(New_Value, n - 1) & "´" & Mid(New_Value, n + 1)
    Else
        Exit Do
    End If
Loop
Y respecto a que te deje fuera las primeras líneas sólo puede ser debido a la razón que te indica Acalanto, que no tienes inicializada la variable Row
__________________
José María Movilla Cuadrado
______________________
www.foro.vb-mundo.com
www.vb-mundo.com

Responder Con Cita
  #4 (permalink)  
Antiguo 13-08-2006, 20:35:00
Gran Participación en el Foro
 
Registrado: sep 2005
Posts: 326
DIVEMASTER2002 Valoración +2
Predeterminado

Gracias Movilla por tu ayuda, pero he descubierto algo que me desconcierta o que en realidad desconosco bien el por que.

El codigo de pasar los datos de Excel a MDB funciona perfecto!!!, pasa todos los registros, pero me di cuenta que el Vsflexgrid de C1, me muestra a partir del registro 25, lo se por que cuando corro la aplicación y despues abro con Access el archivo, aparecen todos los registros ordenados de manera ascendente, pero en el Grid, solo apartir del Nro. 25. Estuve mirando pero no se si el problema esta en el Adodc1 o en el Vsflexgrid de C1, alguna ves le paso?, mil gracias a Acalanto y a ti por su Ayuda.

Gracias!!
__________________
Leonardo R. del Canto

- Bs. As. - Argentina -
Responder Con Cita
  #5 (permalink)  
Antiguo 13-08-2006, 21:03:00
Avatar de acalanto
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.307
acalanto ha deshabilitado la reputación
Predeterminado

Entonces el error lo debes tener en la consulta que lanzas en el VFlexGrid.

Si abres con la base de datos y están todos los registros que has traspasado, no tiene sentido pensar que el componente 'se meriende' los primeros 24.

Revisa la consulta...
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #6 (permalink)  
Antiguo 13-08-2006, 22:52:45
Gran Participación en el Foro
 
Registrado: sep 2005
Posts: 326
DIVEMASTER2002 Valoración +2
Predeterminado

Cita:
Empezado por acalanto
Entonces el error lo debes tener en la consulta que lanzas en el VFlexGrid.

Si abres con la base de datos y están todos los registros que has traspasado, no tiene sentido pensar que el componente 'se meriende' los primeros 24.

Revisa la consulta...
Te pido disculpas, luego de enviar el msje. me di cuanta que con la instrucción SELECT...... podia resolver todo este problema, mil gracias de todas formas por tu tiempo.

Solo algo mas, puedo relizar sumas de manera horizontal en el Vsflexgrid?, estuve mirando pero solo pude hacerlo de manera vertical, pero no pude de manera horizontal, por ejemple Columna A + Columna B = Resultado en Columna C.

Gracias!!!!
__________________
Leonardo R. del Canto

- Bs. As. - Argentina -
Responder Con Cita
  #7 (permalink)  
Antiguo 13-08-2006, 23:33:29
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.490
J.M.Movilla Valoración +2
Predeterminado

Hace pocos días pasé un código para resolver el problema que planteas. En esencia consiste en que generes en la instrucción SELECT un nuevo campo con el resultado de la suma de los campos correspondientes a esas columnas que deseas sumar:

Código:
"Select Campo_A, Campo_B, Campo_A + Campo_B As Resultado... From Productos"
Y en la grilla añades una columna para el campo "Resultado"
__________________
José María Movilla Cuadrado
______________________
www.foro.vb-mundo.com
www.vb-mundo.com

Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Pasar datos de una hoja de excel a otra para facturas zeroxdevil VBA (Excel, Word, Outlook, Access) 8 13-09-2007 20:05:37
pasar datos desde excel a access alpase Visual Basic.NET 2003 & 2005 0 12-02-2007 18:05:13
necesito pasar datos de access a excel Black_devil Visual Basic 6.00 7 12-07-2006 08:23:51
Como hago para pasar los datos de Excel a una grilla ikki_26 VBA (Excel, Word, Outlook, Access) 0 26-11-2005 01:07:55
Pasar datos de una bd de Visual Fox PRo a Excel ikki_26 Visual Basic 6.00 1 17-10-2005 06:18:02


La franja horaria es GMT. Ahora son las 05:16:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right