Como comparo una celda de DataGRid con un text

Manuel Acosta Aceves
30 de Junio del 2006
Que tal amigos, me pueden ayudar a comparar los contenidos de una columna de un DataGrid con el contenido de un text,
Lo que pasa es que en uno de los campos de un registro que almaceno, es decir que en cada registro guardo un dia de la semana (lunes por ejem) y los reflejo en el DataGrid, y quiero que si ya esta almacenado ese dia no me permita volver a guardarlo

Me imagino que seria poniendo algo asi como If DataGrid1.Col(1) = text1.text then
msgbox "Dia Repetido, Imposible guardar"

Otra duda como habo para comparar una celda de un Grid con el contenido de un text

Bartolom
30 de Junio del 2006
Te respondo lo msimo que en otro post.

Lo primero.Tu duda se podría decir que es conceptual, ya que se puede aplicar a varios controles de datos, no necesariamente a los DataGrid.
Lo primero que tienes que tener claro, es que los datos están almacenados en tablas de tu base (por ejemplo un achivo de Access). Por lo tanto, el control que utilices para visualizar los datos (un grid), no es más que un "monitor", ya que el contendio sigue estando en la base. Ahora, para que esos controles(por ejemplo un grid) puedan visualizar lo que hay en la base, debes enlazarlos a un control de acceso a datos, por ejemplo Data, ADO, etc. Yo en mi caso trabajo con ADO. Por lo tanto, si tu quieres comparar el contenido de un textbox con una celda del grid para saber si el dato ya existe, lo que debes hacer es recorrer el control de datos (Data, ADO, etc) y despreocuprte del grid. Ya que el control de datos tiene propiedades como recordset, EOF y Find o Findfirst, te voy a enviar un código de ejemplo donde aparece lo que necesitas, utilizando ADO (también lo puedes hacer con un control Data). Este código puedes incluirlo en un evento Keypress, click, etc, según donde quieres que se ejecute. Pero debe ejecutarse previamente, antes de guardar el dato.

Dim Buscado As Integer, Criterio As String
Buscado = 0
If TextBox1.Text = "" Then Exit Sub
Criterio = "Campo Like '" & TextBox1.Text & "'"
Adodc1.Recordset.MoveNext
If Not Adodc1.Recordset.EOF Then
Adodc1.Recordset.Find Criterio
End If
If Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Find Criterio
If Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveLast
Buscado = 1
End If
End If
If Buscado = 0 Then
MsgBox "Se encontraron coincidencias, no puede ingresar valor repetido"
End If

Saludos!
Bartolom
Chile

maikos
30 de Junio del 2006
hola Bartolom lo que estas haciendo es escanear la base de datos con el ADO ¿NO?, se me hace bueno tu codigo, lo que me pasa es que quiero hacer la misma comparacion, lo que no comprendo en tu codigo es (Criterio = "Campo Like '" & TextBox1.Text & "'" ) , que significa Campo like me supongo que es el campo de la base de datos y el otro que dejas en comillas para que es?????

solidsnake©
30 de Junio del 2006
Utiliza el msflexgrid

y seria if msflex.textmatrix ( fila,columna) = text1.text
no guardar
else
guardar
end if
Saludos

Manuel Acosta Aceves
30 de Junio del 2006
Pero necesito que sea con DataGrid porque en el trabajo de la universidad asi me lo piedieron =S , te lo agradezco de todas maneras, espero me puedas DEcir como pero con Data Grid