Visual Basic - Excel y VB

Life is soft - evento anual de software empresarial
 
Vista:

Excel y VB

Publicado por barca1010 (132 intervenciones) el 09/08/2007 08:50:23
Espero que alguien me pueda ayudar, estoy importando una tabla de Excel a VB, creo un recordset de la hoja de excel y luego paso esa informacion a la tabla de Access, el problema esta en que en una columna de la hoja de excel que tiene formato GENERAL, hay valores como:

72807
072S04

el primero si lo llega a guardar en la BBDD pero el segundo no, dice que es nulo.

alguien me podria ayudar por favor, una acotacion, no puedo cambiar el formato de la hoja de excel porque esta se genera desde otra aplicacion y viene ya con ese formatos predefinido y es el que utilizan el resto de usuarios.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Excel y VB

Publicado por barca1010 (132 intervenciones) el 09/08/2007 10:33:56
EL campo de la bbdd es texto y acepta los valores en blanco. Estuve haciendo pruebas creando una variable para ver que valor aparece cuando lee esa celda y cuando es 72807 la variable trae ese valor pero cuando la celda es 072S04 el valor de la variable es nulo. ¿sabes por que dar este tipo de problemas? es que aplicando la rutina que me explicastes he podido ahorrar mucho tiempo a la hora de importar de excel a acces el unico detallado que he encontrado por ahora es ese.

Muchas gracias, otra vez
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Excel y VB

Publicado por barca1010 (132 intervenciones) el 09/08/2007 11:54:42
la hoja se cre apartir de otra aplicacion y todas las columnas tienen el formato general.

para importar el archivo XLS:

-*-Primero tengo una rutina que lo hace en un modulo de clase (tambien lo he probado en el mismo formulario y no funciona)

strHoja = nombre de la hoja de excel que vamos a importar
strConexion = es la ruta del archivo
-----------------------------------------------------------------------------------------------------------
Public Function RecordsetExcel(ByVal strHoja As String, ByVal strConexion As String) As Recordset

Dim Obj_Conexion As ADODB.Connection
Dim Obj_Recordset As ADODB.Recordset

Set Obj_Conexion = New ADODB.Connection
Set Obj_Recordset = New ADODB.Recordset

With Obj_Conexion
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source= " & strConexion & ";" & "Extended Properties=Excel 8.0;"
.CursorLocation = adUseClient
.Open
End With

Set Obj_Recordset.ActiveConnection = Obj_Conexion
Obj_Recordset.CursorType = adOpenStatic
Obj_Recordset.LockType = adLockOptimistic

pStrSQL = "SELECT * FROM [" & strHoja & "$]"

With Obj_Recordset
.Open pStrSQL, Obj_Conexion, adOpenStatic, adLockReadOnly
End With

Set RecordsetExcel = Obj_Recordset
Set Obj_Recordset = Nothing
Set Obj_Conexion = Nothing
End Function
-----------------------------------------------------------------------------------------------------------
-*-Segundo, con el recordset empiezo a llenar la base de datos si cumplen con algunas de las condiciones establecidas

While Len(ObjetoExcel(gColumna_Cuenta_Gastos - 1)) > 0
If ObjetoExcel(gColumna_Cuenta_Gastos - 1) = "6070001" Or ObjetoExcel(gColumna_Cuenta_Gastos - 1) = "6240000" Or ObjetoExcel(gColumna_Cuenta_Gastos - 1) = "6000000" Then

Set Objeto = ObjetoGuardarGastos.Guardar_Gastos(pCodigoGastos, _
ObjetoExcel(1),etc)
pCodigoGastos = pCodigoGastos + 1
End If

frmBuscar.lblCantidad.Caption = "Registros examinados: " & gFila
frmBuscar.lblCantidad.Refresh
gFila = gFila + 1
ObjetoExcel.movenext
Wend

-----------------------------------------------------------------------------------------------------------
y todo funciona bien hasta que en la columna aparece un dato que sea solo numero, lo extraño y de eso me acabo de dar cuenta es que si en una misma columna hay datos alfanumericos y numericos aparece este error, pero si es solo numeros o solo texto, no da ningun problema...... espero que me hayas entendido, o mejor dicho que me haya explicado bien

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Excel y VB

Publicado por barca1010 (132 intervenciones) el 09/08/2007 13:36:27
Se aceptan sugerencias para optimizar la aplicacion, programo de esa forma porque lo hago para crear una DLL donde se realicen todas las operaciones (Guardar, Eliminar, Buscar, Actualizar, Etc)

en cuanto al codigo se me olvido una parte....

en la rutina de Importar declaro el Objeto

Dim ObjetoExcel As Object
Dim ObjetoRecordset_Excel As clsExcel
Dim Objeto As Object
Dim ObjetoAviso As clsAviso

Set ObjetoRecordset_Excel = New clsExcel
Set ObjetoExcel = ObjetoRecordset_Excel.RecordsetExcel(strHoja, strRuta)

Set ObjetoAviso = New clsAviso
While Len(ObjetoExcel(gColumna_CALLNUMBER_Aviso - 1)) > 0
Set Objeto = ObjetoAviso.Guardar(ObjetoExcel(Columna1 - 1), _
Trim(ObjetoExcel(Columna2 - 1)), etc... ) ObjetoExcel.movenext
Wend

el primer registro lo guarda bien pero el segundo que es el que contiene la celda con numeros y letras me dice que es nulo cuando en realidad no lo es......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Excel y VB

Publicado por ivan (1039 intervenciones) el 09/08/2007 23:02:41
parese k no lo entendis amigo barca os hase una pregunta y salis por la puerta datras.
yo kreo sin criticar el modelo de programacion es que hai demasiados ojetos y no caben todos en el porgrama.

soy un fan de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Excel y VB

Publicado por barca1010 (132 intervenciones) el 10/08/2007 07:44:41
Como dicen en mi pueblo "arbol que nace torcido, nunca su tronco endereza".... aprendi a programar de esa forma y me morire haciendolo asi... aunque creo que lo de los objetos no es el problema porque solo me da problema con esa hoja de excel, con las demas funciona sin problemas......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Excel y VB

Publicado por barca1010 (132 intervenciones) el 10/08/2007 09:28:51
Creo que he conseguido algo de informacion sobre el problema que tengo a la hora de exportar el archivo de excel, dejo el link por si desean ver cual es la solucion para que no aparezca el valor "NULL" que les habia comentado.

http://www.mvp-access.com/softjaen/articulos/excel/ado_dao_excel.htm
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar