Necesito volcar una consulta a un fichero de texto, pero no directamente, sino controlando la salida y para ello me estaba valiendo de Print #. Necesito imprimir una coma al final de cada línea, sólo si no es la última línea, pero como las instrucciones Print # y Write # escriben los argumentos y cambian automaticamente de línea, no consigo el resultado: Lo que quiero conseguir en el fichero de texto: ["categoria1"], ["categoría2"], ["categoría3"] Si hago algo así: Do Until rs.EOF Print #1, "[" & """" & rs("Categoria") & """" "]" rs.MoveNext If Not rs.EOF Then Write #1, "," Loop Lo único que consigo es esto: ["categoria1"] , ["categoría2"] , ["categoría3"] ¿Como se puede hacer? RESPONDE BUHO ============= prueba con esta otra estructura Dim Linea As String Do Until Rs.EOF Linea = "[" & Rs("Categoria") & "]" Rs.MoveNext If Not Rs.EOF Then Linea = Linea & "," Print #1, Linea Loop He quitado las dobles comillas para simplificar. Solo se trataba de que antes de escribir en el fichero de texto, grabes en la variable Linea el string y mover el recordset antes del Not Rs.Eof Creo que de esa forma dbería funcionarte, ya que al hacer Rs.Movenext, si se apunta al final del Recordset, no se jecutará la siguiente linea, con lo cual la variable Linea no tendrá la ',' coma en el ultimo registro. Yo he hecho una prueba con un Debug.Print y me ha funcionado. EDUARDO OLAZ ============ Como complemento al comentario de Búho te paso este código, por cierto hecho con DAO Suponemos que tenemos la tabla Categorias con el campo Categoria ________________________________________________ Public Sub GenerarCategoriasTXT() Dim rs As DAO.Recordset Dim strRegistro As String Set rs = CurrentDb.OpenRecordset("Categorias", dbOpenSnapshot) With rs .MoveFirst strRegistro = !categoria Do While Not .EOF .MoveNext If Not .EOF Then strRegistro = strRegistro & "," GrabaDato strRegistro, "Fichero.txt" strRegistro = !categoria Else GrabaDato strRegistro, "Categorias.txt" End If Loop End With rs.Close Set rs = Nothing End Sub Public Sub GrabaDato(ByVal Dato As String, ByVal Fichero As String) Dim lngFichero As Long lngFichero = FreeFile Open Fichero For Append As #lngFichero Print #lngFichero, Dato Close #lngFichero End Sub ________________________________________________