Filtrar registros

¿Como puedo hacer lo siguiente)
Elijo mediante un combo box un cliente, una vez hecho esto, me saca un formulario dónde ya aparece el nombre del cliente que he elegido y lleva incorporado un mshflesgrid; a la vez saco un pequeño formulario donde debo ingresar un código de producto en un textbox que sólo puede pertenecer al cliente elegido AQUÍ ES DÓNDE NO SÉ SEGUIR. Es decir que si meto el nº 500 y este número de producto está asignado al cliente que he elegido me lo añada al mshflexgride. ¿Cómo "filtro" solo los registros del cliente que he solucionado?

1 Respuesta

Respuesta
1
Una vez escrito el código del producto puedes hacer una consulta a tu base de datos, con el id del cliente y producto para saber si le corresponde o no, si es así continuas la operación y si no mandas un mensaje y borras el contenido del text, o bien puedes hacer una consulta previa y llenar un combo o un grid con los productos que el cliente puede usar y hacer más sencillla la captura, no tiendo que estar adivinando cual esta permitido o no. si necesitas más ayuda sigue preguntando.
Suerte
Carlos aguilar.
La primera opción es la que yo tenia in mente, porque el cliente ejemplo idcliente "300" cliente "Ayuntamiento" puede tener un grandísimo nº de productos.
Lo que necesito, es como sería las sintaxis de las instrucciones para hacer la consulta para saber si le corresponde y me lo añada al mshfelexgrid.
¿Me puedes enviar ejemplo de sintaxis?
Un saludo
No se como manejas tu base de datos (el acceso a ella) te pongo un ejemplo de como podrías hacerla usando recordset:
dim rs as new adodb.recordset
sql = "select * from clientes_productos where id_cliente=' & cliente & " id_producto='" & id_producto
set rs = conexion.execute (sql)
Hago la suposición que en la tabla clientes_productos esta la relación de que productos tiene acceso cada cliente, después de ejecutar la consulta en el recordset puedes checar si te devolvió algún registro, si es así puedes agregar el producto al grid en caso contrario mandar el mensaje de error.
En este caso seria necesario que tengas el id del cliente y del producto, ya que si buscas por nombre en la base de datos pueden haber datos repetidos o semejantes lo que provocaría una consulta errónea, que te devolvería varios datos.
En tu pregunta no me indicas que tipo de sintaxis me pides, si no le atine sigue preguntando, suerte.
Buenas no acabo de sacarlo. Te paso el código:
Option Explicit
Dim cn As Connection
Dim rs As New Recordset
Dim sql As Integer
Private Sub Form_Load()
Set cn = New Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\SEÑOR\PROGRA_PRESTAR\PROGRAMA_PRESTAR.mdb;Persist Security Info=False"
End Sub
Private Sub cmdaceptar_Click()
sql = " select * from clientes_expedientes where idcliente ='& nombrecliente & " idarticulo= "' & idarticulo"
Set rs = conexion.Execute(sql)
End Sub
Lo que debe pasar es lo siguiente: El usuario meterá en el textbox un idarticulo y cuando de a "aceptar" el programa internamente chequeará si ese articulo pertene al cliente seleccionado en la pantalla anterior, si fuera así lo asignará a un mshflexgrid, si no le dará mensaje no encontrado. Desconozco la sintaxis (instrucciones a utilizar)
Tengo una tabla clientes y otra artículos y una consulta que las une llamada "clientes_expedientes"
De igual manera comentarte el siguiente problema que va a surgir: sintaxis para añadirlo al mshflexgrid
Si tienes a bien me das una solución sino no pasa nada
Un saludo
Option Explicit
Dim cn As Connection
Dim rs As New Recordset
Dim sql As Integer
Private Sub Form_Load()
Set cn = New Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\SEÑOR\PROGRA_PRESTAR\PROGRAMA_PRESTAR.mdb;Persist Security Info=False"
End Sub
Private Sub cmdaceptar_Click()
sql = "select * from clientes_expedientes where idcliente ='& nombrecliente & "' and idarticulo= "' & idarticulo & "'"
Set rs = conexion.Execute(sql)
if (rs.bof and rs.eof) then
msgbox "Producto no autorizado"
else
mshflexgrid.additem idproducto
End Sub
Arregle algunas partes de tu consulta que estaban mal, pero no me dices específicamente donde te falla, o que te falta, ¿solamente me dices que te hace falta sintaxis pero no se sintaxis de que?
Ahí te pongo un ejemplo de como podría hacerse ojala te sirva suerte
No acaba de salir, ¿me dice que tengo una variable sin declarar? En la linea:
Set rs = conexion.Execute(sql)
De todas maneras no entiendo "en español" lo que quiere decir
Un saludo
No me había dado cuenta, tienes declarada la variable sql como integer y debe ser string. Ojala que sea eso.
Nada tío no ha habido suerte, me sigue diciendo que variable sin declarar, seguiré trabajando en el tema, por favor contestame para que te pueda puntuar y muchas gracias por tu interés

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas