OBJETIVO: El objetivo de este foro es el de divulgar MS Access y ayudar a los usuarios en la solución de dudas y consultas, siempre indicando el camino, para que el usuario aprenda, estudie y consiga caminar con las propias piernas. No espero nada a cambio (quizás tan sólo un gracias, ya que nadie me paga por hacer esto: gastar conexión, interpretar dudas, ubicar respuestas, en sintesis perder tiempo y/o dinero, sólo por la voluntad de ayudar) e intento siempre motivar al usuario a aprender, dando sólo guías o pistas y en algunos casos algún código completo. No soy de aquellos que gusta dar el código desarrollado y comentado, por el simple hecho de que eso lleva tiempo (no me sobra, ya que trabajo) y mi deseo es incentivarte a aprender. El hecho que exista este site gratuíto y que lo mantenga en forma diaria, no me obliga a contestar la dudas de los usuarios, y menos aún la de tener que dedicar mi tiempo a desarrollar códigos completos por la falta de delizadeza o exceso de abuso de algunos. Cómo mencioné anteriormente el objetivo es mostrarte el camino... "No soy favorable de dar pescado (leáse desarrollar código), sino de enseñar a pescar (leáse mostrar cómo desarrollar el código) , ya que así, sí tienes hambre sabrás pescar (leáse voluntad de aprender y crear tus propias aplicaciones) " Si no te gusta nuestra postura, eres libre de irte y no volver, ya que nada perderás (no has pagado nada). En cambio si lo que deseas es aprender y valorar el esfuerzo y tiempo de otros, estás convidado de por vida por acá!!!
 


  << Previous Topic | Next Topic >>Volver Indice  

PROBLEMA CON EL FOCO

February 24 2004 at 2:21 PM
  (no login)
de la dirección IP 80.58.37.170

 
Hola a todos y gracias x ayudarme... Mi problema es el siguiente:

Tengo una tabla CODIGOS_POSTALES que almacena los CODIGOS_POSTALES y las LOCALIDADES.

Tengo un formulario donde se pide al usuario k introduzca el CP, LOCALIDAD, etc...
El CP del formulario es un cuadro combinado k muestra como posibles entradas la tabla CODIGOS_POSTALES.

Quiero evitar k el usuario introduzca un CP k no se encuentre en la tabla; y si introduce un CP valido k se rellene automaticamente el campo LOCALIDAD.

El codigo k he creado es el siguiente:

Private Sub CODIGO_POSTAL_AfterUpdate()

If IsNull(Me![CODIGO_POSTAL]) Then
Exit Sub
End If

Dim Comando As ADODB.Command
Dim Record As ADODB.Recordset

Set Comando = New ADODB.Command
With Comando
.ActiveConnection = CurrentProject.Connection
.CommandText = "SELECT LOCALIDAD FROM CODIGOS_POSTALES WHERE CODIGO_POSTAL = " & Me![CODIGO_POSTAL]
.CommandType = adCmdText
End With
Set Record = Comando.Execute

'Comprobacion de que se ha encontrado un registro.
If ((Record.BOF) And (Record.EOF)) Then 'No ha encontrado ningun registro
Dim Cadena As String
Cadena = "El Código Postal" + Str(Me![CODIGO_POSTAL]) + " no existe."
MsgBox Cadena, 0, "Error Código Postal"

Me![CODIGO_POSTAL].SetFocus
Me![CODIGO_POSTAL].SelStart = 0
Me![CODIGO_POSTAL].SelLength = Len(Str(Me![CODIGO_POSTAL]))
Else
Me![LOCALIDAD] = Record.Fields(0)
End If

End Sub

El problema es k cuando el usuario introduce un CP no valido, me saca el mensaje avisandome dl error pero luego no se me keda en el campo CODIGO_POSTAL y el contenido de este no se keda seleccionado.

Espero haberme explicaco con claridad...

Gracias d antemano..

 
 Respond to this message   
AutorReply
CLANDER
(no login)
80.58.37.170

Re: PROBLEMA CON EL FOCO

February 24 2004, 4:24 PM 

Otra preguntita k me ha surgido:

¿Puede tener un boton de comando una imagen y un texto a la vez? Creo k no es posible pero es para confirmar...

 
 Respond to this message   
R.Roca
(no login)
201.2.231.19

Limitar a la lista:

February 25 2004, 4:55 PM 

Clander:

Tu cuadro combinado, limitado a la lista, de esa manera no se pordrá introducir un código que no exista en el origen y por ende también podrás utilizar le evento NoInList. Con eso no tiene pronblemas de foco ya que siempre queda ahí

Saludos y Suerte

PD: No se puede intoducir imagen + texto. debes crear una imagen que tenga el texto y meterlo como imagen, salvo que encuentres algún Activex por ahí

 
 Respond to this message   
Clander
(no login)
80.58.37.170

Re: Limitar a la lista:

February 26 2004, 8:59 AM 

Gracias... nunca te acostaras sin saber una cosa mas.. Pero ahora viene otra cuestion...

Creo la funcion k gestiona el evento NotInList:

Private Sub CODIGO_POSTAL_NotInList(NewData As String, Response As Integer)
MsgBox "El Código Postal introducido no existe.", 48, "Error Código Postal"
End Sub

Cuando pulso Aceptar me sale otro mensaje de Access informandome de k no he introducido un elemento de la lista: ¿Puedo kitar este ultimo mensaje? o ¿puedo modificarlo?

Gracias nuevamente... cada vez me gusta mas esto... aunke tenga k kitar horas d sueño...

 
 Respond to this message   

(no login)
212.81.200.82

ADICIÓN DE ELEMENTO EN CUADRO COMBINADO

February 26 2004, 9:30 AM 

Te mando un código muy práctico para añadir un nuevo elemento a la lista de un cuadro combinado. Con unas sencillas modificaciones puedes hacer que te salga un cuadro de mensaje y que te vuelva al cuadro combinado para que elijas el correcto. En este ejemplo te deja elegir entre añadir el elemento nuevo (en este caso el Código Postal) o el no añadirlo (que sería tu caso, ya que están todos los códigos introducidos)

Consiste en añadir un nuevo elemento a una lista de cuadro combinado en el que su propiedad "Limitar a la lista" sea Sí.

El código 1º se debe colocar en el evento "Al no estar en la lista" del Cuadro Combinado referido

El código 2º se debe colocar al cargar el formulario que va a recibir el nombre nuevo escrito

CÓDIGO 1º

Private Sub CustomerID_NotInList(NewData As String, Response As Integer)
Dim intReply As Integer
'-- la variable se asigna a la respuesta dada en el MsgBox
intReply = MsgBox("El cliente '" & NewData & _
"' no está en la lista. Deseas añadirlo?", vbYesNo)
If intReply = vbYes Then '-- Si la respuesta ha sido Sí
'-- Abrir el formulario de clientes en el modo de introducción
'-- de datos, pasando los nuevos datos en el parámetro
'-- OpenArgs (NewData)
DoCmd.OpenForm "NombreFormulario", , , , acFormAdd, acDialog, NewData
'-- Registro añadido, por lo que se cancela el
'-- procesamiento predeterminado de Access
Response = acDataErrAdded
Else '-- Si la respuesta ha sido No
MsgBox "Por favor, seleccione un elemento de la lista."

'-- Tenemos que tratar el error, por lo que informamos
'-- a Access de que no debe presentar su error
'-- predeterminado
Response = acDataErrContinue
End If
End Sub

CÓDIGO 2º

Private Sub Form_Load()
If Not IsNull(Me.OpenArgs) Then
Me.NombreCampo.Value = Me.OpenArgs
End If
End Sub

 
 Respond to this message   
Clander
(no login)
80.58.37.170

Re: ADICIÓN DE ELEMENTO EN CUADRO COMBINADO

March 4 2004, 8:19 AM 

Gracias me ha servido de muxo...

 
 Respond to this message   
Current Topic - PROBLEMA CON EL FOCO
  << Previous Topic | Next Topic >>Volver Indice  
Find more forums on MS Access DatabasesCreate your own forum at Network54
 Copyright © 1999-2009 Network54. All rights reserved.   Terms of Use   Privacy Statement  
"Los mayores best sellers son los Manuales y Archivos de Ayuda, pero ellos son como los libros de Stephen Hawking: muchos compran, pocos leen y muchos menos entienden alguna cosa."