| ID | Asunto | Fecha | Nick | |
| 41097 | Delimitador Tab Archivo plano | 06/05/08 17:34 | Lestat2492 | |  |
Buenas tardes, tengo un problemita... a ver si me pueden ayudar... tengo una aplicacion para abrir archivos planos, ya sean delimitados por coma, punto y coma etc.. el problema esta en que cuando quiero abrir un archivo delimitado por (tab) me arroja el siguiente error (runtime error - 2147467259 "valor en la clave excel de la seccion Engines no valido del registro de windows)... estuve investigano pero no encontr nada les el codigo de la funcion con la que modifico el registro segun el tipo de delimitador del archivo que voy abrir.
Private Sub Command2_Click() If Text1.Text = "" Then MsgBox "Debe seleccionar algun archivo", vbInformation, "IMPORTANTE" Exit Sub End If If Optcoma.Value = True Then delim = ";" End If If Optpuntocoma.Value = True Then delim = ";" End If If Opttab.Value = True Then delim = "CSVDelimited" End If If Optotro.Value = True Then delim = Text4.Text End If sSep = "Delimited(" & delim & ")" ModifRegistro HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Jet\4.0\Engines\Text", "Format", sSep conectar End Sub
este es el llamado a la funcion y en la variable delim almaceno el valor (segun el tipo de archivo) para modificar el registro.
esta es la funcion:
Option Explicit Dim delim As Variant Public sSep As String Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Const HKEY_LOCAL_MACHINE = &H80000002 Const REG_SZ = 1 '''''''''''''*************Funcion para tratar el delimitador**********'''''''''''''''' Sub ModifRegistro(HKLM As Long, sPath As String, sClave As String, sValor As String) Dim lRet As Long, hKey As Long lRet = RegCreateKey(HKLM, sPath, hKey) lRet = RegSetValueEx(hKey, sClave, 0, REG_SZ, ByVal sValor, Len(sValor)) lRet = RegCloseKey(hKey) End Sub
con la coma y el punto y coma anda barbaro perocuando modifico a TabDelimited, me tira el error que mencione antes.
Agradesco su ayuda. |
|
| ID | Asunto | Fecha | Nick | |
| 41201 | Re: Delimitador Tab Archivo plano (Resp: 41097) | 10/05/08 07:23 | juanjoa | | |
Hola,
El valor que tienes que poner en el registro es "TabDelimited"
Pon estas líneas antes de la modificación del registro:
If Opttab.Value = True Then sSep = "TabDelimited" Else sSep = "Delimited(" & delim & ")" End If
Un saludo
[Editado: juanjoa, 10/05/2008 07:25:23] [juanjoa, 10/05/2008 07:29:30]
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
| ID | Asunto | Fecha | Nick | |
| 41237 | Re: Delimitador Tab Archivo plano (Resp: 41201) | 12/05/08 10:16 | Lestat2492 | | |
Gracias por contestar, pero lo probe y me sigue arrojando el mismo error...
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
| ID | Asunto | Fecha | Nick | |
| 41281 | Re: Delimitador Tab Archivo plano (Resp: 41237) | 13/05/08 11:35 | juanjoa | | |
¿Pusiste el código que te dije antes de llamar a la función ModifRegistro?
Porque sino, mira lo que te está dando la variable sSep:
"Delimited(CVSDelimited)" y debería ser "TabDelimited" o "CVSDelimited"
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
| ID | Asunto | Fecha | Nick | |
| 41282 | Re: Delimitador Tab Archivo plano (Resp: 41281) | 13/05/08 11:50 | Lestat2492 | |  |
Perdon me confundi al modificar el codigo .... Muchisimas gracias muy pero muy buena tu ayuda.... Saludos,
Pablo.
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |