¿Cómo puedo importar txt a base de datos en vb 6.0?
Estoy haciendo un sistema y me trabe, lo que pasa es que tengo un formulario en vb 6.0 y en este tengo que mostrar los datos de un *.txt y no se como jalarlos, ademas me gustaría que me dijera sobre que componente debo insertar primero para que pueda recibir los archivos no se tal vez un flex grid y un adodc porque la base de datos ya la tengo creada y esta conectada con el adodc el */.txt ya esta con los datos pero quiero jalarlos desde el programa cop comanbdo por ejemplo o un command dialog en fin, un amigo programador me dijo que puede ser algo así como: Append from"la ruta del archivo" fields "los campos que ya tengo creados en la bd" delimited with characters":, ., ;" "porque los tengo separados por comas", ese código es para jalar los datos desde fox pro y en vb no me sale, le agradecería mucho su respuesta ya que estoy haciendo un sistema para un control escolar, sin ningún fin lucro, solo el de titularme, que tenga un grandioso día y es un placer incorporarme a esta página... Atte.- Jesus Enrique
1 respuesta
Respuesta de denciso
1
1
denciso, Soy una persona multifacética, tanto manejo la informática,...
Tienes que adaptar el siguiente segmento de código: Private Sub cmdAbrir_Click() Const STR_TIPO_ARCHIVO = "IN*.TXT" Dim sTag As String Dim iYaExiste As Integer Dim sStatus As String 'Inicializo Dialogo General del Filtro pnlArchivo.Text = NULL_STRING mdiPrincipal!dlgPrinter.Filter = NULL_STRING sArchivo = NULL_STRING iYaExiste = NULL_INTEGER 'Se Escoge el tipo para el diálogo mdiPrincipal!dlgPrinter.FileName = STR_TIPO_ARCHIVO mdiPrincipal!dlgPrinter.FLAGS = OFN_FILEMUSTEXIST Or OFN_PATHMUSTEXIST Or OFN_HIDEREADONLY mdiPrincipal!dlgPrinter.DialogTitle = " Integración de Documentos Externos " mdiPrincipal!dlgPrinter.Action = DLG_FILE_OPEN 'Validamos que se cumpla con el nombre del arhivo If (UCase(Mid$(mdiPrincipal!dlgPrinter.FileTitle, 1, 2)) = "IN") Then 'Cargamos el Archivo en Base de Datos pnlArchivo.Text = mdiPrincipal!dlgPrinter.FileName sArchivo = Trim$(mdiPrincipal!dlgPrinter.FileTitle) If cnx.gf_AbreRecordset(gcx_Conexion, grs_Recordset, "SELECT status FROM det_sad_integra where archivo = '" & sArchivo & "' and status 1") Then If Not grs_Recordset.EOF Then sStatus = grs_Recordset.Fields(0) iYaExiste = 1 End If End If If Val(Trim$(sStatus)) = 2 Or Val(Trim$(sStatus)) = 0 Then Call Realiza_Carga End If End If End Sub Sub Realiza_Carga() Dim sRegistro As String 'Contenido del Registro Dim iNumFile As Integer 'Numero de Archivo del DOS Dim iNumFile2 As Integer 'Numero de Archivo del DOS Dim sLinea As String Dim sQuery As String Dim iLongitud As Long Dim sTmpCadena As String Dim iLetra As Long Dim sLetra As String Dim iPos As Long Dim sBeneficiario As String Dim sTipoBenef As String Dim sImporte As String Dim sConcepto As String Dim sResult As String Dim smodMsg As String 'modificacion 10/11/97 Dim giRetorna As Integer Screen.MousePointer = Hourglass sprDatos.ReDraw = False 'Inicia Apertura del Archivo On Local Error GoTo ErrorOpenFile1 sprDatos.MaxRows = NULL_INTEGER 'Obtiene un número de archivo libre iNumFile = FreeFile 'Abre el Archivo y Lee el Primer registro Open Trim$(pnlArchivo.Text) For Input As iNumFile 'Inicia lectura del Archivo While Not EOF(iNumFile) 'Leo la Linea del Registro Line Input #iNumFile, sRegistro iLongitud = Len(sRegistro) sTmpCadena = Space$(iLongitud + 100) iLetra = 1 iPos = 1 For iLetra = 1 To iLongitud sLetra = Mid$(sRegistro, iLetra, 1) If Asc(sLetra) = 9 Then Select Case iPos Case 1 sBeneficiario = Mid$(sRegistro, 1, iLetra - 1) Case 2 sTipoBenef = Mid$(sRegistro, Len(sBeneficiario) + 2, (iLetra - Len(sBeneficiario) - 2)) Case 3 sConcepto = Mid$(sRegistro, Len(sBeneficiario & sTipoBenef) + 3, (iLetra - Len(sBeneficiario & sTipoBenef) - 3)) End Select iPos = iPos + 1 End If Next sImporte = Mid$(sRegistro, Len(sTipoBenef & sBeneficiario & sConcepto) + 4, (iLetra - Len(sBeneficiario) - 4)) 'Valida que el registro a desplegar no se haya ya integrado al sistema If cnx.gf_AbreRecordset(gcx_Conexion, grs_Recordset, "SELECT v_Documento_Folio From ori_sad_documentos Where archivo = '" & sArchivo & "' and v_beneficiario = '" & sBeneficiario & "' and v_Documento_Importe = " & CDbl(sImporte)) Then If Not grs_Recordset.EOF Then sResult = grs_Recordset.Fields(0) End If End If If Trim$(sResult) = NULL_STRING Then sprDatos.MaxRows = sprDatos.MaxRows + 1 sprDatos.Row = sprDatos.MaxRows sprDatos.Col = 1 sprDatos.Text = sBeneficiario sprDatos.Col = 2 sprDatos.Text = sTipoBenef sprDatos.Col = 3 sprDatos.Text = Busca_Beneficiario(sTipoBenef, sBeneficiario) sprDatos.Col = 4 sprDatos.Text = sConcepto sprDatos.Col = 11 sprDatos.Text = sImporte End If sResult = NULL_STRING Wend 'Cierra el Archivo Close #iNumFile sprDatos.ReDraw = True Screen.MousePointer = Default Exit Sub ErrorOpenFile1: smodMsg = " Ocurrió un Error al Abrir el Archivo a Integrar" 'Despliega el mensaje que se armo anteriormente Call Mensaje_VB(smodMsg, MB_OK + MB_ICONINFORMATION, False, NULL_INTEGER, False) Close #iNumFile Exit Sub End Sub Estoy usando un grid llamado spread, solo tienes que adaptarlo para un flexgrid que es lo mejor y posteriormente grabas los datos cuando los haya revisado el usuario...
Gracias mil gracias, voy a probarlo y adecuarlo a mi bd y mi *.txt, que tenga buen día, si me llego a trabar lo molesto de nuevo con una aclaración, gracias de nuevo, buen día... Atentamente.- Jesús
Gracias por los comentarios y buena suerte en el proceso de adaptación...