Cambiar datos directo de un grid

Tengo una tabla llamada tijuana, en la cual busco por los campos nombre, a_paterno ya_materno y despliego todos los campos dentro de un grid ya que lo encontró, ¿pero cómo podría cambiar los registros encontrados dentro del grid?

1 Respuesta

Respuesta
1

Espero poder ayudarte! :) ¿Cambiar los registros dentro del grid? ¿Modificarlos? Pues unicamente debes enlazar el grid a la tabla! EN la propiedad RECORDSOURCE del grid, ingresa el nombre de tijuana! En recordsourdetype escoge 1 - Alias. El control Grid es como una ventana de la tabla! Es como si trabajaras sobre la tabla directamente! Si modificas algún registro en el grid... cambiara en la tabla! Para asegurar que lo que modifiques se guarde correctamente... podes crear un botón "GUARDAR" y en el evento click coloca un código como este:

SELECT tijuana

TABLEUPDATE(.T.)

THISFORM. Refresh

Para revertir algún cambio que hayas echo... podes crear un botón "REVERTIR" y un código como este:

SELECT tijuana

TABLEREVERT(.T.)

Ves! Cualquier cosa me avisas! :)

Genial gracias, otra pregunta hasta ahorita he utilizado un select de la tabla para buscar ppor tres campos, pero quiero indexar y utilizar seek pues quiero poder borrar registros y el select no me sirve para esto,como puedo buscar concatenando?

¿Borrar registros? ¿Oo? Hmm... hay varias formas de hacerlo! ¿Indexar y Seek? Hmm... pues yo te aconsejaría mejor usar el comando DELETE para marcar los registros a eliminación! Si quieres... puedes ver en mi blog... y ahí busca la entrada sobre eliminación de registros

http://ravennfoxpro.blogspot.com/2011_08_01_archive.html

Ahora... comprendo por donde quieres ir con el seek y por tanto el indexado! Para indexar la tabla unicamente ve a la pesatana DATA de tu proyect... busca la tabla sobre la que indexaras... y modifícala! Una vez abierto el diseñador de tabla... escoge el campo y selecciona la opción INDEX y elige ascendente o descendente! (Ascendente). Luego para realizar una búsqueda con seek va así:

Select tabla
SET ORDER to nombredeindice

SEEK(THISFORM. Text1. Value)

Ves! Recuerda que el nombre del indice es precisamente EL NOMBRE DEL INDICE no el del campo! Lo encuentras en el entorno de datos de tu form.. selecciona la tabla y abajo de todos los campos están los nombres de lo indices! :)

Pero bien... yo te acosnejo mejor usar la flexibilidad del comando DELETE

Por ejemplo... vamos a suponer que en la tabla tijuana con campo nombre queremos eliminar los registros cuyos nombres sean Juan. Para eliminar todos los registros que cumplan con la condición Juan... procedemos así:

**--

SELECT tijuana

DELETE FOR tijuana.nombre = "Juan"

**--

THISFORM.Refresh

**--//

Si evaluamos mas campos para la condición... por ejemplo queremos eliminar de la tabla tujuana con campos nombre y edad que correspondan a Juan y a 18, procedemos así:

**--
SELECT tijuana
DELETE FOR tijuana.nombre = "Juan" AND tijuana.edad = 18
**--
THISFORM.Refresh
**--//

Ves! Es mas fácil que usar una búsqueda para condicionar la eliminación!

Avisame si te funciona! :)

Saludos! Desde Managua, Nicaragua!

Genial, me sirvió mucho el eliminarlo por consulta....muchas gracias. De nuevo molestando, en una forma tengo un grid que me carga la tabla que uso de ahí busco por nombre, paterno y materno y funciona bien, pero me busca solo uno y no se si hay coincidencias en ambos campos o alguno de ellos, como podría hacer que me despliegue todos con lo que coincida en algún campo, cabe señalar que no utilizo cursor.

Y una duda mas, como puedo programar reportes en base a una búsqueda en un formulario, intente con el asistente para formularios pero me despliega todos los registros

Son varias preguntas! Jajaja! :) Pero te ayudare! No te preocupes! Te pediré si que respecto a como programar un reporte en base a búsqueda abras una nueva consulta para tratar el tema con todos sus detalles por aparte ya que esta consulta no es directamente en base a ese tema! :) Es fácil! Precisamente hoy trabajaba configurando unos reportes así! :)

Para buscar los registros en mas de un campo, podes proceder así

**--

SELECT apellidopaterno, apellidomaterno FROM tijuana WHERE apellidopaterno = "Ruiz" AND apellidomaterno = "Lopez"

**--

BROWSE

¿No usas un cursor? Este código te funciona para cursor (también MAL LLAMADO tabla temporal) y para una tabla .dbf! ¿Pero a que te refieres con no usar cursor? ¿Oo?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas