Al vincular una tabla de MySQL en una base de datos Access al abrir la tabla todos los campos de todas las filas dan el mensaje #eliminado.
Una manera de poder trabajar por lo datos es crear un consulta basada en la tabla poniendo el * para que seleccione todos los campos.
Ir a propiedades de la Consulta y en las Propiedades poner como Tipo Recordet: Archivo Snapshot.
Después abrir la consulta y ya se ven todos los datos.
VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in
Microsoft Access 2000 Tags:
Access,
MySQL
Típico caso en Microsoft Access en el que tenemos que poner una desplegable para personas con el código oculto y visualizando nombre apellidos o apellidos, nombre el problema con el sistema normal es que si uno de los dos campos es nulo no se muestra nada.
La solución es poner esto en la columna de la consulta SQL de la que depende el campo de descripción:
Visual Basic:
Paciente: [apellidos]+SiInm(EsNulo([nombre propio]);"";", "+[nombre propio])
Ejemplo en CAGI0101_1
VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in
Microsoft Access 2000 Tags:
Access,
SQL
Paso a paso para crear una barra de menus contextual y utilizarla en un formulario Access.
Como crear la barra de Menus Contextuales:
- Ir Ver-> Barra de Herramientas -> Personalizar
- Seleccionar la pestaña Barra de Herramientas y pulsa el Boton Nueva
- Poner un nombre (yo las suelo empezar por ctx) y MenuContextual y verás que aparece una barra flotante.
- Añadir las funciones o macros que se quiera o no pongas ninguna
- Una vez creada la barra de Herramientas, selecciona Propiedades de la Barra de Herramientas nueva e indica que es de tipo emergente, verás que desaparece de la lisa de Barra de Herramientas, no pasa nada.
Como modificar las opciones de un Menú Contextual
- Ir Ver-> Barra de Herramientas -> Personalizar
- Marcar la barra Menús Contextuales y aparece una barra que contiene todos los menús contextuales de Access.
- El último Menú es Personalizada y allí podemos, de la forma habitual, añadir, modificar o eliminar opciones de la barra de Menús
Una forma de Utilizar los Menús Contextuales
Es habitual tener un formulario con una lista de registros y que queramos añadirle una serie de opciones a los mismos via menú contextual de una forma sencilla, aquí os pongo un ejemplo posible, para utilizar este ejemplo son necesarios conocimientos básicos de VBA.
Partimos de la base de que tenemos un formulario que nos muestra una lsita de clientes y cada cliente tiene su formulario de mantenimiento de datos: frmClientes
- Creamos una barra de menú contextual llamada ctxCliente
- Creamos una variable global llamada gblCliente
- Creamos una función VBA por cada acción de la Barra de Menús (Ejemplo 1)
- Añadidimos en nuestra barra de menús la acción para acceder a la función pública poniendo en Acción = pfuCompeticionFicha()
Ejemplo 1:
Visual Basic:
Public Function pfuClienteFicha()
On Error Resume Next
DoCmd.OpenForm "frmCliente", , , "[ClienteID]='" & gblCliente & "'"
End Function
VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in
Microsoft Access 2000 Tags:
Access
Es frecuetne hacer una consulta SQL de referencias cruzadas en Access basada en una primera consulta que prepara los datos y los filtra en función de unos parámetros.
La 1ª consulta con parámetros funciona bien pero la 2ª da error al ejecutarse.
Hay que hacer lo siguiente:
- Suponemos que la 1ª consulta se basa en dos campos de fecha que están en un formulario llamado CGTI0037, los campos se llaman: [Desde Fecha] y [Hasta Fecha]
- La primera consulta, la de selección, usa este dos campos para filtrar los datos
- En la segunda consulta una vez construida y estando en el modo de diseño se debe ir a la barra de menús superior e ir a la opción Consulta->Parámetros y aparece una tabla de doble entrada donde pone Par´maetro y Tipo de datos.
- Insertaremos tantas filas como parámetros tengamos, en nuestro caso serán dos:
- [Desde Fecha], tipo de datos Fecha/Hora
- [Hasta Fecha], tipo de datos Fecha/Hora
- Ahora podremos ejecutar la consulta sin que de errores.
Si los parámetros no están en un formulario si no directamente en la primera consulta el procedimient en la 2ª consulta es el mismo.
VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in
Microsoft Access 2000 Tags:
Access
Código VBA para ver todos los comandos de las barras de menú de Access 2000:
Visual Basic:
Sub EnumerarComandos()
Dim cb As CommandBar
Dim cbc As CommandBarControl
For Each cb In Application.CommandBars
Debug.Print cb.Name
For Each cbc In cb.Controls
Debug.Print cbc.Caption
Next
Next
End Sub
VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in
Microsoft Access 2000 Tags:
Access
Con esta secuencia creamos una barras de menús para ver todos los iconos que lleva incorporados Access y desde personalizar podemos copiar y pegar.
Comprobado en Access 2000 y 2003
Visual Basic:
Sub EnumerarIconosAccess()
Dim cb As CommandBar
Dim cb1 As CommandBar
Dim cbc As CommandBarControl
Dim cbc1 As CommandBarControl
Dim cbc2 As CommandBarButton
Dim cbb As CommandBarButton
Dim cbx As CommandBarComboBox
Dim cbp As CommandBarPopup
Dim cbp1 As CommandBarPopup
Dim ind1 As Integer
Dim ind2 As Integer
For ind1 = 1 To 4
Set cb = Application.CommandBars.Add("Botones" + Str(ind1))
For ind2 = ((ind1 - 1) * 1000) + 1 To (ind1 * 1000)
Set cbc2 = cb.Controls.Add(msoControlButton)
cbc2.Style = msoButtonIcon
cbc2.FaceId = ind2
cbc2.Caption = ind2
cbc2.Tag = ind2
Next ind2
Next ind1
MsgBox "Barra Creada"
End Sub
VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in
Microsoft Access 2000 Tags:
Access,
Iconos
Suponiendo que el campo se llame Texto1 y sea independiente, es decir no esté ligado a una tabla se hace de la siguiente forma:
En la propiedad Regla de Validación de la pestaña Datos entramos la siguiente expresión:
Longitud([Texto1])<=10
Siendo 10 el número de caracteres máximos que queremos permitir.
Se recomienda también introducir un mensaje explicativo debajo en la propiedad Texto de Validación que se visualiza en caso de infringir la propiedad, por ejemplo:
Texto demasiado largo, máximo 10 caracteres.
VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in
Microsoft Access 2000 Tags:
Access
Ejemplos de Alter Table con ADD Column, CONSTRAINT , CREATE TABLE, etc. para Microsoft Access
SQL:
-- CAG
ALTER TABLE CAGT0001 ADD COLUMN Tratamiento TEXT (12)
ALTER TABLE CAGT0001 ADD COLUMN SerieFactura TEXT (2)
ALTER TABLE CAGT0001 ADD COLUMN NumeroFactura Long
-- CAGT0002: LLamadas Counter es Autonumerico
CREATE TABLE CAGT0002 ([LLamada] Counter, CONSTRAINT CAGT0002_PK PRIMARY KEY ([LLamada]))
ALTER TABLE CAGT0002 ADD COLUMN [codigo medico] TEXT (4)
ALTER TABLE CAGT0002 ADD COLUMN [codigo paciente] TEXT (8)
ALTER TABLE CAGT0002 ADD COLUMN fecha DATETIME
ALTER TABLE CAGT0002 ADD COLUMN hora DATETIME
ALTER TABLE CAGT0002 ADD COLUMN texto TEXT(255)
ALTER TABLE CAGT0002 ADD COLUMN observaciones LONGTEXT
-- CAGT0105: Motivos de Alta
CREATE TABLE CAGT0105 ([MotivoAlta] TEXT (12) NOT NULL, CONSTRAINT CAGT0105_PK PRIMARY KEY ([MotivoAlta]))
ALTER TABLE CAGT0105 ADD COLUMN [Descripcion] TEXT (50)
-- CAGT0171: Empresas
CREATE TABLE CAGT0171 ([Empresa] TEXT (12) NOT NULL, CONSTRAINT CAGT0171_PK PRIMARY KEY ([Empresa]))
ALTER TABLE CAGT0171 ADD COLUMN [NombreEmpresa] TEXT (50)
-- CAGT0201: Otros Médicos
CREATE TABLE CAGT0201 ([Medico] TEXT (12) NOT NULL, CONSTRAINT CAGT0201_PK PRIMARY KEY ([Medico]))
ALTER TABLE CAGT0201 ADD COLUMN [Tratamiento] TEXT (10)
ALTER TABLE CAGT0201 ADD COLUMN [Nombre] TEXT (50)
ALTER TABLE CAGT0201 ADD COLUMN [Apellidos] TEXT (50)
--- Otros
ALTER TABLE CAGT0101 ADD COLUMN TipoEpisodio TEXT (12)
CREATE TABLE CAGT0181 ([Tratamiento] TEXT (12) NOT NULL, [Descripcion] TEXT (50) NOT NULL, [Tiempo] Date NOT NULL, [Maquina] TEXT(12), [Color] LONG, CONSTRAINT CAGT0181_PK PRIMARY KEY ([Tratamiento]))
CREATE TABLE CAGT0191 ([Maquina] TEXT (12) NOT NULL, [Descripcion] TEXT (50) NOT NULL, [NumeroMaquinas] INTEGER, CONSTRAINT CAGT0191_PK PRIMARY KEY ([Maquina]))
-- CAR
-- Parámetros
ALTER TABLE CART0001 ADD COLUMN [estado pendiente cobro] TEXT (4)
ALTER TABLE CART0001 ADD COLUMN TextoCeldaSize BYTE
ALTER TABLE CART0001 ADD COLUMN FormularioBusquedaServicios BYTE
ALTER TABLE CART0001 ADD COLUMN ServicioForzarEnCelda BIT
-- Médicos
ALTER TABLE CART0011 ADD COLUMN HoraInicioEspecial DATETIME
ALTER TABLE CART0011 ADD COLUMN VisitaSemanas BYTE NOT NULL
UPDATE CART0011 SET VisitaSemanas = 2 WHERE VisitaSemanas IS NULL;
-- Bloqueos
ALTER TABLE CART0012 ADD COLUMN Tratamiento TEXT (12)
-- Servicios
ALTER TABLE CART0021 ALTER COLUMN descripcion TEXT(200)
ALTER TABLE CART0021 ADD COLUMN TextoCOMB TEXT (100)
ALTER TABLE CART0021 ADD COLUMN VerEnCelda BIT
-- Tarifas de ervicios
ALTER TABLE CART0041 ADD COLUMN Intervencion BIT
-- CART0053: Tipos de Mutuas
CREATE TABLE CART0053 ([TipoMutua] TEXT (12) NOT NULL, CONSTRAINT CART0053_PK PRIMARY KEY ([TipoMutua]))
ALTER TABLE CART0053 ADD COLUMN [Descripcion] TEXT (50)
-- CART0101 Pacientes
ALTER TABLE CART0101 ADD COLUMN Efectivo BIT
-- CHC
CREATE TABLE CHCT0117 ([codigo paciente] TEXT (7) NOT NULL, [episodio] LONG NOT NULL, [code] TEXT (50) NOT NULL, [Observaciones] MEMO, CONSTRAINT CHCT0113_PK PRIMARY KEY ([codigo paciente], episodio, code))
-- CGT
-- CGTT0401 Productos
ALTER TABLE CGTT0401 ADD COLUMN Efectivo BIT
ALTER TABLE CGTT0401 ADD COLUMN CodigoBarras TEXT (50)
-- CGTT0511 Movimientos de Productos
ALTER TABLE CGTT0511 ADD COLUMN Efectivo BIT
ALTER TABLE CGTT0511 ADD COLUMN SerieFactura TEXT (2)
ALTER TABLE CGTT0511 ADD COLUMN NumeroFactura Long
VN:F [1.4.6_730]
Rating: 5.0/5 (1 vote cast)
Posted in
Microsoft Access 2000 Tags:
Microsoft Access 2003,
SQL
Modo resumido
Visual Basic:
Sub CamposDeTabla1()
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Set dbs = OpenDatabase("i:\intex winbol2000\E999\car.mdb")
Set tdf = dbs.TableDefs("CART0001")
For Each fld In tdf.Fields
Debug.Print fld.Name
Next
Set fld = Nothing
Set tdf = Nothing
dbs.Close
End Sub
Modo ampliado
Visual Basic:
Sub CamposDeTabla()
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Set dbs = OpenDatabase("i:\intex winbol2000\E999\car.mdb")
Set tdf = dbs.TableDefs("CART0001")
For Each fld In tdf.Fields
Select Case fld.Type
Case 1 ' Boolean
Debug.Print fld.Name
Case 4 ' Long
Debug.Print fld.Name
Case 7 ' Double
Debug.Print fld.Name
Case 8 ' Date
Debug.Print fld.Name
Case 10 ' Text
Debug.Print fld.Name
Case 12 ' Memo
Debug.Print fld.Name
Case Else
Debug.Print fld.Name
End Select
Next
Set fld = Nothing
Set tdf = Nothing
dbs.Close
End Sub
VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in
Microsoft Access 2000,
Visual Basic Tags:
Access,
DAO,
Field,
TableDef
El sistema que utilizamos para el multiidioma en Access es el siguiente:
1. Primero se realiza la aplicación Access en castellano (por ejemplo)
2. Le pasamos una rutina que documenta en una tabla Access los siguientes elementos:
- Etiquetas de Formularios
- Etiquetas de Informes
- Caption's de Botonos
- Caption's de Páginas en el control ficha
- ...
Los nombres de las etiquetas quedan asociados al idioma 'es'
Ventaja
Ahorra mucho tiempo en documentar, es automático
3. Si queremos que la aplicación se presente también en Inglés copiamos la tabla de etiquetas del idioma ‘es' al 'en' y ponemos la descripción de la etiqueta en inglés
Ventaja
Si una etiqueta como 'Codigo Cliente' se repite 50 veces en una aplicación de gestión sólo es necesario traducirla una vez. Traducir una aplicación completa lleva 20 minutos.
4. Definimos los usuarios que tienen acceso a la aplicación y con que idioma quieren trabajar
5. Cada vez que se carga un formulario en el evento Form_load añadimos una línea que llama a una función donde se asigna a cada Caption de Etiquetas, botones, etc. su descripción en el idioma del usuario, cuando se presenta el formulario o informe éste ya esta traducido y no se nota ningún tiempo de espera significativo.
Ventaja
Si se cambia de usuario no es necesario reiniciar la aplicación para que cambie al idioma del usuario, ya que la traducción se realiza en tiempo de ejecución.
6. Idioma ‘pz’, éste idoma que quiere decir ‘personalizado’ está dado de alta en la tabla de idiomas y permite que las empresas usuarias de la aplicación se hagan una traducción de la misma ‘a la carta’.
Ventaja
Esto soluciona el típico problema de que en distintas empresas se llama a un mismo concepto con distintos nombres, por ejemplo al artículo se le puede decir: Artículo, Producto, Mercancía, etc. El propio usuario puede personalizarse la aplicación a su medida.
VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in
Microsoft Access 2000 Tags:
Access,
Idioma