Visual Basic - Alguien sabe como

Life is soft - evento anual de software empresarial
 
Vista:

Alguien sabe como

Publicado por Jorge (7 intervenciones) el 09/06/2004 20:19:43
Kiero generar un archivo de texto txt que me saque lo suientente de todos los clientes q tengo en mi base de datos acces,seria algo asi lo q quiero q me genere:

pedro diez perez
jose perez perez
marta lopez canseco
.
.
.

Asi todos los clientes q tengo en la base de datos osea los campos nombre,apellido1,apellido2 separados por un espacio.

yo lo q tengo es esto.pero claro solo te genera un usuario el q tengo en pantalla en ese momento:

Private Sub cmdtxt_Click() 'TXT
Dim ArchivoTxt As Variant, f As Variant 'TXT
Set ArchivoTxt = CreateObject("Scripting.FileSystemObject")
Set f = ArchivoTxt.CreateTextFile(RutaArchivoConexion, True)
f.Write Text1(1) & " " & Text1(2) & " " & Text1(3)
f.Close 'TXT
MsgBox "Listo", vbInformation 'TXT

End Sub

alguien me puede ayudar?
gracias amigos
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:Alguien sabe como

Publicado por skrank (99 intervenciones) el 09/06/2004 22:31:58
hola, que tal

'en el option explicit declaramos las variables
Dim knClientes As New ADODB.Connection
Dim rsClientes As New ADODB.Recordset
Dim ClienTes As Variant

'en el boton Command1_Click()
'creamos una conexción con la BD
Set knClientes = New ADODB.Connection
'creamos una tabla de datos
Set rsClientes = New ADODB.Recordset
'realizamos la conexión ala base de datos a través de un ODBC que he creado en el sistema llamado Clientes
knClientes.Open "Provider=MSDASQL.1;Persist Security Info=False;Data Source=Clientes"
'cargamos el RecordSet con los datos de la tabla Cliente
rsClientes.Open "Select * From Clientes", knClientes, adOpenDynamic, adLockOptimistic
rsClientes.MoveFirst
'recorremos todo el RecordSet para guardarlo en la variable de tipo varian
While Not rsClientes.EOF 'mientras no llegemos al final de la tabla...
ClienTes = ClienTes & " " & rsClientes.Fields("Nombre") & " " & rsClientes.Fields("Apellido1") & " " & rsClientes.Fields("Apellido2") & vbCrLf
rsClientes.MoveNext
Wend
'ahora sólo queda volcar el contenido de la variable Clientes en el archivo de texto
'que por cierto nunca lo había visto hacer de la forma que lo haces tu.
'yo lo he volcado en una caja de texto multiline y ha funcionado.

Espero que te sirva de algo todo este follón
Saludos
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:Otra forma de hacerlo....!!!

Publicado por miguel (1042 intervenciones) el 10/06/2004 02:42:55
Bien lo puedes hacer tambien de esta manera....SALUDOS !!!!

DIM Rs As ADODB.Recordset
DIM sql As String
DIM cnbase As ADODB.Connection
Private Sub Form_Load()
Abrir 'Manda llamar al procedimiento
Dim vlSql As String
vlSql = "Select Nombre,Apellido1,Apellido2 From Clientes (Nolock)"
LlenaArchivoTexto vlSql 'mandas la consulta como parametro
End Sub

Sub Abrir()
Ruta="C:\MIBASEDATOS.mdb" 'donde esta tu ruta de base datos
Conexion = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & Ruta & ""
Set cnbase = New ADODB.Connection
cnbase.ConnectionString = Conexion
cnbase.Open Conexion
End Sub

Sub LlenaArchivoTexto(pSQL As String)
Dim ArchivoTxt As Variant, f As Variant 'TXT
Dim rst As ADODB.Recordset
Dim objField

Set ArchivoTxt = CreateObject("Scripting.FileSystemObject")
Set f = ArchivoTxt.CreateTextFile("C:\ArchivoTexto.txt", True)
Set rst = New ADODB.Recordset
If rst.State = adStateOpen Then rst.Close

rst.CursorLocation = adUseClient
rst.CursorType = adOpenDynamic
rst.LockType = adLockOptimistic

Rs.Open sql, cnbase
Do While Not rst.EOF
f.Write rst.Fields(0).Value & " " & rst.Fields(1).Value & " " & rst.Fields (2).Value + vbNewLine
rst.MoveNext
Loop
rst.Close
f.Close
MsgBox "Listo", vbInformation
End Sub
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:Otra forma de hacerlo....!!!

Publicado por Jorge (7 intervenciones) el 14/06/2004 12:58:31
Gracias a los 2. Me quedo con este ultimo metodo de Miguel,lo unico q me da error "error 91 variable de tipo object no establecida" donde os señalo abajo en el codigo.

Dim Rs As ADODB.Recordset
Dim sql As String
Dim cnbase As ADODB.Connection
Private Sub Form_Load()
Abrir 'Manda llamar al procedimiento
Dim vlSql As String
vlSql = "Select NOMBRE,APELLIDO1,APELLIDO2 From COFRADIA (Nolock)"
LlenaArchivoTexto vlSql 'mandas la consulta como parametro
End Sub
Sub Abrir()
Ruta = "C:\socios.mdb" 'donde esta tu ruta de base datos
Conexion = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & Ruta & ""
Set cnbase = New ADODB.Connection
cnbase.ConnectionString = Conexion
cnbase.Open Conexion
End Sub
Sub LlenaArchivoTexto(pSQL As String)
Dim ArchivoTxt As Variant, f As Variant 'TXT
Dim rst As ADODB.Recordset
Dim objField
Set ArchivoTxt = CreateObject("Scripting.FileSystemObject")
Set f = ArchivoTxt.CreateTextFile("C:\ArchivoTexto.txt", True)
Set rst = New ADODB.Recordset
If rst.State = adStateOpen Then rst.Close
rst.CursorLocation = adUseClient
rst.CursorType = adOpenDynamic
rst.LockType = adLockOptimistic
Rs.Open sql, cnbase '<<<<<<<------ERRORRRRRRRRRRRRRRRRR 91'
Do While Not rst.EOF
f.Write rst.Fields(0).Value & " " & rst.Fields(1).Value & " " & rst.Fields(2).Value + vbNewLine
rst.MoveNext
Loop
rst.Close
f.Close
MsgBox "Listo", vbInformation
End Sub

Me podeis hechar una mano,q hay q modificar?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