Access - CONCATENAR CAMPOS

 
Vista:

CONCATENAR CAMPOS

Publicado por MARIO (53 intervenciones) el 09/07/2003 17:04:50
QUE TAL GRUPO:
Yo tengo una tabla con 20 campos
f1,f2,......f50

yo tengo datos en un array de 50 elemtos
yo estoy creando un bucle algo asi
For intCounter = 0 To CONTADOR
rst!F1 = ArrayBase(intCounter)
Next
donde contador es 50
mi pregunta com hago para que el campo rst!f1 vaya incrementadose con intcounter
yo probe con rst!f&intcounter pero me falla
gracias
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:CONCATENAR CAMPOS

Publicado por Pancho (149 intervenciones) el 09/07/2003 17:39:24
Hola

La respuesta a tu problema es la siguiente:

for nI:= 0 to CONTADOR
rst.Add
rst.Count(nI)=ArrayBase(nI)
rst.Update
next

Espero te sirva

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:CONCATENAR CAMPOS

Publicado por Mario (53 intervenciones) el 09/07/2003 17:44:41
gracias por tu interes:
pero en "rst.Count(nI)=" tu estas llamando a un metodo u evento.
me explico deberia ser "rst!Count(nI)=" y ahi es donde falla
eje rst!field(nl) falla
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:CONCATENAR CAMPOS

Publicado por Pancho (149 intervenciones) el 09/07/2003 18:09:31
Hola

OK entendi el problema el codigo que te envie esta errado en algunas cosas

r
rst.Add o rst .Edit
for nI = 0 to CONTADOR-1
rst.Field(nI)=ArrayBase(nI)
next
rst.Update

OK aqui si que te funciona....pero el error te da por que no puedes usar el operador Bang (!) como lo haces alli...

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:CONCATENAR CAMPOS

Publicado por Mario (53 intervenciones) el 09/07/2003 18:15:38
rst.Field(nI)=ArrayBase(nI)
el "." no funciona para almacenar datos en un recordset
hay que usar el "!"
espero me entiendas
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

RE:CONCATENAR CAMPOS

Publicado por Pancho (149 intervenciones) el 09/07/2003 18:17:55
Hola

Aqui te dejo una prueba y haces los cabios necesarios a Field le falta una "s"

Saludos

Function Prueba() As Boolean
Dim rst As DAO.Recordset

Set rst = CurrentDb.OpenRecordset("T1")

rst.AddNew
For nI = 0 To rst.Fields.Count - 1
rst.Fields(nI) = "AAAAA"
Next
rst.Update
rst.Close
End Function
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:CONCATENAR CAMPOS

Publicado por MARIO (53 intervenciones) el 09/07/2003 18:28:04
Gracias, pase el bache, me habia estancado espero poder contar contigo mas adelante
Mario R.
Kentucky USA
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:CONCATENAR CAMPOS

Publicado por Pancho (149 intervenciones) el 09/07/2003 18:22:25
Hola

Esta es otra solucion posible

Function Prueba() As Boolean
Dim rst As DAO.Recordset

Set rst = CurrentDb.OpenRecordset("T1")

rst.AddNew
For nI = 0 To rst.Fields.Count - 1
Select Case nI
Case 0
rst.Fields!C1 = "AAAAA"
Case 1
rst.Fields!C2 = "AAAAA"
Case 2
rst.Fields!C3 = "AAAAA"
End Select
Next
rst.Update
rst.Close
End Function

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:CONCATENAR CAMPOS

Publicado por mario (53 intervenciones) el 09/07/2003 18:30:08
esa es otra opcion., lo que pasa que no quiero que el codigo crezaca tanto imaginate
Case 28
rst.Fields!C28 = "AAAAA"
y asi etc
quiero evitar un codigo tan amplio
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

Otra solucion

Publicado por Pancho (149 intervenciones) el 09/07/2003 18:23:48
Hola

Aqui te va otra:

Function Prueba() As Boolean
Dim rst As DAO.Recordset

Set rst = CurrentDb.OpenRecordset("T1")

rst.AddNew
For nI = 0 To rst.Fields.Count - 1
Select Case nI
Case 0
rst.Fields("C1") = "AAAAA"
Case 1
rst.Fields("C2") = "AAAAA"
Case 2
rst.Fields("C3") = "AAAAA"
End Select
Next
rst.Update
rst.Close
End Function
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 solucion

Publicado por mario (53 intervenciones) el 09/07/2003 18:32:23
aqui te envio mi codigo:
Sub read1()

Dim dbs As Database
Dim rst As Recordset
Dim strRecordSource As String 'Source for recordset, can be SQL, table, or saved query
Dim intFileDesc As Integer 'File descriptor for output file
Dim strSourceFile As String 'Full path of source file
Dim strTextLine As String 'Input buffer
Dim strField1 As String 'Extracted Field1 from buffer
Dim strField2 As String 'Extracted Field2 from buffer
Dim strField3 As String 'Extracted Field3 from buffer
Dim strField4 As String 'Extracted Field1 from buffer
Dim strField5 As String 'Extracted Field2 from buffer
Dim strField6 As String 'Extracted Field3 from buffer
Dim strField7 As String 'Extracted Field1 from buffer
Dim strField8 As String 'Extracted Field2 from buffer
Dim strField9 As String 'Extracted Field3 from buffer
Dim strField10 As String 'Extracted Field1 from buffer
Dim strField11 As String 'Extracted Field2 from buffer
Dim strField12 As String 'Extracted Field3 from buffer
Dim intCounter As Single
Dim CONTADOR As Single
Dim aB As Variant
Dim ArrayBase(100) As Variant
Set dbs = CurrentDb
intCounter = 0
CONTADOR = 0
strRecordSource = "TABLE2"
strSourceFile = "e:\winrep\winrep\edi\recv\030708in.008" 'esto es un file binario
Set rst = dbs.OpenRecordset(strRecordSource)

intFileDesc = FreeFile
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