ERRORES EN modulo de vsb access

Necesito de su ayuda ya que tengo un modulo que quiero que me haga ciertos if y parámetros para que me de un resultado ya sea TIPO A, TIPOB O TIPO C,

¿Pero me dice error de pocos parámetros me podrán ayudar?...

Si necesitan algo adicional de favor solicitarlo ya que me urge arreglar esta estructura.

Envio la estructura en imagen ya que por el codigo no me deja enviarlo.

Saludos.

1 respuesta

Respuesta

Pregunta: "¿tipo de almacenaje y tipo de ubicacion" es una tabla o una consulta? Si es una consulta ¿tiene algún parámetro?

A mi me da que la respuesta a las dos preguntas es sí, y por eso te da ese error. Si me lo confirmas, te explico cómo trabajar en VBA con consultas parametrizadas.

Un saludo


Un nuevo foro de Access ha nacido, visítanos: http://nksvaccessolutions.com/Foro/ 

Te explico es una consulta

El campo ABC es el resultado del pareto que me explicaste pero viene de otra consulta y tiene los componentes A, B, C

El campo Un medida de salida tiene los parámetros CJ, EXH, PZA, BTO y vienen también de una consulta

Y el campo de salidas por día pedido también viene de consulta y es un dato numérico.

Gracias por tu apoyo

Ponme una imagen del diseño de la consulta, o pégame su SQL, porque no me aclaraste mucho.. je je

Te lo mando como imagen ya que me marca error por que tiene muchas mayúsculas.

Y la verdad muchas gracias.

Saludos.

En esa consulta no veo ningún parámetro, por lo que supongo que los tienes en una de las dos consultas de la que depende.

Si no puedes poner los parámetros en la consulta final, siempre te va a dar error al tratar de abrirla por VBA, y ahí no te puedo ayudar.

Cuando trabajas con consultas con parámetros, tienes que declarar otros tipos de variables, no sólo el recordset. En abstracto sería:

'Creas las variables para los recordsets
Dim rst As DAO.Recordset
Dim qry As QueryDef
'Creas el recordset sobre la consulta
Set qry = CurrentDb.QueryDefs("ConsultaPArametrizada")
'Le pasas el parámetro
qry.Parameters("Aqui el parametro") = "Valor del parámetro"
'Abres el recordset sobre la consulta
Set rst = qry.OpenRecordset()

Si tienes más de un parámetro, añades tantas lineas qry.Parameters como te hagan falta. 

Ya te entendí pero hay t va al ejecutar me aparece una ventanilla que ponga el parámetro a mí no me interesa párame trizar quiero que la información fluya totalmente no me filtre no se si me exPlique si es así como podría ejecutar un vsb

Pues lo siento, no te acabo de entender.

Con el código anterior, no te tiene que salir ninguna ventana pidiendo el parámetro. Si en tu consulta tienes en un CampoX este parámetro: [Escribe el valor que deseas], en VBA tienes que poner:

qry.Parameters("Escribe el valor que deseas")="Un valor"

Donde "un valor" es el valor que le pasas al parámetro.

Viendo la función que has construido, es más sencillo que la modifiques, para pasarle como parámetros los 3 campos y compararlos:

Public Function tipoalmacenaje(elValor as string,medidaVenta as string, salidasDia as Integer) as String

If elValor="A" AND medidaVenta="CJ" AND salidaDias<6 Then tipoalmacenaje="TIPO C"

...

End Function

Y la función (que no sé para qué la usas) la puedes poner como un nuevo campo de la consulta, pasándole los otros tres campos que hacen de parametros.

Te puedo enviar  la base de datos para  mejor aclararte las dudas y te explico  que es lo que quiero que haga en ese campo.

 si es que se puede.

Haz lo que te digo, modifica la función, que es lo más fácil. Le pones 3 parámetros (los llamas como quieras, pero el tipo de datos tiene que ser el correcto) que serán los tres campos que estas usando ahora por medio del recordset, te olvidas del recordset, y vas sustituyendo en la función los rst(..) por el nombre del parámetro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas