Añadir campos a un catalogo

Soy yo otra vez, molestandodote con una pregunta más, espero me puedas ayudar.
Te acordaras de mi pregunta anterior, de las empresas en el cuadro combianado, actualizando otro con la zona correspondiente, lo que quiero es lo siguiente: que al capturar el nombre de una empresa y no exista, me pregunte que si la quiero añadir al catalogo de empresas con su respectiva zona, no tengo idea de como hacerlo ya que no tengo conocimientos de visual basic y a ver si me puedes pasar algún manual gratuito que este realmente bueno, ya que no he encontrado ninguno.

1 respuesta

Respuesta
Para poder añadir nuevos elementos a la lista y a la tabla asociada, tendrás que utilizar código VB en el procedimiento de evento (al no estar en la lista) de las propiedades del cuadro combinado.
Te pondré un ejemplo:
Tengo una lista de familias de artículos en una lista y cuando se teclea una que no existe la añade a la tabla y al cuadro utilizando el evento.
' Procedimiento de evento del cuadro combinado
Private Sub CcbFamilias_NotInList(NewData As String, Response As Integer)
Dim Mensaje As String
' Creamos cadena de texto con el mensaje que se le mostrará al usuario
Mensaje = "La Familia: " & UCase(newdata) & " no está en la lista " & vbCr & "¿Desea darla de alta en la aplicación?"
' Pide al usuario que compruebe que desea agregar un nuevo valor.
If PreguntaOkCancel(Mensaje) = vbOK Then
' Agrega la cadena del argumento NewData al origen de las filas.
' Si se cancela la operación suprime el mensaje de error y deshace los cambios.
If Not AñadeFamilia(NewData) Then
Response= acDataErrContinue
CcbFamilias.Undo
Else
Response= acDataErrAdded
End If
Else
' Si el usuario elige Cancel, suprimir el mensaje de error y deshacer los cambios.
Response = acDataErrContinue
CcbFamilias.Undo
End If
end sub
' Función que muestra mensaje con la pregunta
Public Function PreguntaOkCancel(ByVal Mensaje As String) As Integer
PreguntaOkCancel = MsgBox(Mensaje, vbQuestion + vbOKCancel)
End Function
' Procedimiento que añade el nuevo valor a la tabla de familias
private sub AñadeFamilia(Nombre as string)
' Declaramos variable para sentencia SQL y cursor para recorer la lista
dim ssql as string
dim rs as recordset
' Seleccionamos todos los campos de la tabla familia cuando el campo familia sea el que buscamos (como es un nuevo valor, nos devolverá un registro vacío)
ssql = "SELECT * FROM Familias WHERE Familia='" & Nombre & "'"
' Obtenemos el cursor de lectura/escritura para recorer los registros
set rs = currentdb.openrecordset(ssql, dbopendynaset)
' Añadimos un nuevo registro
rs.addnew
' Asignamos los valores a los campos
rs!Familia=Nombre
' Tú puedes indicar el nombre de tus campos como rs!NombreCampo = NuevoValor (cada uno de los nuevos valores tendrá que ser un argumento que le pases al procedimiento (AñadeFamilia))
..
..
' Actualizamos el registro
rs.update
' Cerramos el cursor
rs.close
' Liberamos memoria
set rs = nothing
end sub
Este es un bloque de procedimientos que por lo general nos servirán para añadir valores de los cuadros combinados cuando no existan.
En cuanto al tema de los tutoriales. Buenos y gratis, es decir que se centren en el aspecto de la programación no he encontrado, hay algunas direcciones de interés como:
http://www.abcdatos.com/tutoriales/ofimatica.html
http://www.dubina.com/Internet/tutoriales.asp
http://www.toptutoriales.com
personales.ya.com/mesabugy/territoriopc
En estas direcciones te recomiendo los apartados de programación en VB, ya que Access utiliza VB para sus módulos.
Aunque lo que si puedes encontrar son buenos libros de programación avanzada en Access como:
Programación avanzada con microsoft access 2000
Scott Barker
Editorial:Prentice Hall España

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas