Ancho fijo sin e+ el dato numérico archivo txt

Como puedo exporta un campo de ancho fijo sin que me aparezca e+ después del 14 carácter. Ej. 1,29035534880574e+14, solo quiero que salga de esta forma 129035534880574,00.

2 respuestas

Respuesta

Quisiera poder decirte algo, pero no dices a donde lo quieres exportar, ni que es lo que quieres exportar, ya que si tengo un formulario Tabla1, dependiente de la tabla del mismo nombre

Puedes ver que el número tiene 15 dígitos enteros. Si pulso el botón me lo transfiere a Excel

Y el código del botón, en este caso, es

Private Sub Comando5_Click()
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "Tabla1", "C:\users\gonza\documents\borrar\borrar.xlsx"
End Sub

Por eso sería conveniente que ampliaras lo que te señalo en los puntos de arriba.

Respuesta

Se pregunta es clara en ningún momento pregunta enviar a Excel, entiendo enviar a un archivo texto el campo del número en formato exponencial. Tengo la siguiente tabla

Utilizo la función Format() para obtener el número en forma normal, es decir, no científico.

Explico las 2 formas de crear el archivo texto mediante Open (sistema antiguo) y FSO. En cualquiera de las formas obtengo:

129035534880574,00
294535534880574,00
48563553488057500,00
89453553488057500,00

Código del botón Exporta a TXT

Private Sub btnExporta_Click()
  Dim strArchivo As String
  Dim bytArchivo As String
  Dim strLinea As String
  Dim sql As String
  Dim rs As DAO.Recordset
  sql = "SELECT numero_exp FROM tblExponencial"
  Set rs = CurrentDb.OpenRecordset(sql)
  bytArchivo = FreeFile
  strArchivo = "D:\TodoExpertos\exponencial.txt"
  'Abro el archivo
  Open strArchivo For Output As bytArchivo
  Do Until rs.EOF
    Print #bytArchivo, Format(rs!numero_exp, "###0.00")
    rs.MoveNext
  Loop
  Close #bytArchivo
End Sub

Código del botón 

Private Sub btnFSO_Click()
 Dim fso As New FileSystemObject
 Dim stream As TextStream
 Dim sql As String
 Dim rs As DAO.Recordset
  sql = "SELECT numero_exp FROM tblExponencial"
  Set rs = CurrentDb.OpenRecordset(sql)
  Set stream = fso.CreateTextFile(CurrentProject.Path & "\ex_ponencial.txt")
  Do Until rs.EOF
    stream.writeline Format(rs!numero_exp, "###0.00")
    rs.MoveNext
  Loop
  Set stream = Nothing
End Sub

Particularmente prefiero con FSO.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas