PREGUNTAS CONTESTADAS - Access

 Hay un total de 676 Preguntas.<<  >> 

    Pregunta:  13867 - MIGRACIóN DE APPROACH A ACCESS 2000
Autor:  Clemar Poppino
Quisiera saber si existe alguna forma de convertir una aplicación hecha en Approach 96 o Millenium a Access 2000? De no ser posible, se podría convertir solo la base de datos?
  Respuesta:  Anonimo veneciano
prueba con Exportar de Aproach a Dbase e importar de Dbase a Access y las consultas formularios etc.. pues tendrás que hacerlas de nuevo

    Pregunta:  14085 - JPG EN ACCESS
Autor:  Javier Garcia
quisiera saber si es posible incluir archivos con formato JPG en las tablas de Access 2000, ya que con el formato BMP la base de datos se vuelve gigante. Desde ya muchisimas gracias.
  Respuesta:  Iñaki Ramos
Te va a pasar lo mismo con cualquier tipo de formato ya que no es el espacio que ocupa la imagen, sino lo que Access reserva para ese objeto. No se si te va a valer para Access 2000 pero sí funciona perfectamente con Access97. Te remito a una página interesantísima que además de la solución para tu problema con un archivo llamado "images.zip", tiene un montón de cosas que te pueden servir. La dirección es "www.abarcode.net/tomasb/"

    Pregunta:  14177 - GUARDAR FECHA DE MODIFICACION DE CAMBIOS
Autor:  Oscar López
Hola a todos, necesito poder guardar el usuario y la fecha en que se realiza cada cambio en cualquier control de varios formularios.
La primera idea que se me ocurrió es colocar el código para guardar el usuario y la fecha en una tabla en el evento afterupdate de cada control pero tengo muchos controles y sería bastante largo de hacer.
Gracias
  Respuesta:  PAU RUCABADO PALOMAR
En Access existe un opción que es crear un grupo de trabajo "Workspace" no se demasiado bien como funciona pero supongo que podrás guardar copias con otro nombre. Si creas un programa para detectar los cambios, ya tendrás lo que quieres.

De todas maneras yo lo tengo hecho un formulario con controles independientes que rellena los valores, con un subprograma que tiene como parámetro de entrada que el campo detecto los cambios.
En el evento al actualizar llamo al subprograma y compara con el dato anterior y si ha cambiado guarda quien cambió el dato y la fecha. También guarda el dato anterior de manera que puedo restaurar los valores en cuanto quiera.

De todas maneras es largo hasta que lo tienes.

un saludo y espero que te sirva

    Pregunta:  14216 - CONFIGURAR RUN TIME ACCESS
Autor:  Pedro
Tengo una aplicación en access. Esta empaquetada con RUN TIME ACCESS para ser distribuida. Cuando ejecuto la aplicación siempre me pide confirmar los cambios de registros o acciones sobre consultas!...La aplicación fue empaquetada desde un FULL ACCESS que tenía la opción \"confirm record changes and action queries\" desabilitada...Como puedo quitar esta opción en RUN TIME ACCESS.
Mil gracias
  Respuesta:  German Acevedo
Tengo el mismo problema, "googleando" encontré esta posible solución:

"DoCmd.SetWarnigs False para desactivar. Con True, los activas de nuevo."

Cuéntame cómo te funciona
  Respuesta:  victor
Puedes intentar ver las claves del registro del ordenador donde creaste el paquete de instalación. Exportas las claves y la introduces en el ordenador destino.
Debería funcionar.
Dime si fue bien o no

Saludos

    Pregunta:  14267 - CONTROL DE APERTURA DE WORD
Autor:  Rosana sanchez bustillo
Hola a todos!
Intento abrir un documento de Word desde Access y si el word está abierto me abre un nueva ventana ¿cómo puedo detectar si Word está ya abierto? Deseo abrir los documentos en una sóla ventana y no que me abra word cada vez que ejecuto la orden de abrir.

saludos y gracias por anticipado
  Respuesta:  Javier Silva
En principio tienes dos formas de manejar el Word, una és creando una referencia directa en tu programa como el la siguiente declaración:

dim w as word.application

set w = new word.application

y la segunda es crear o aprovechar el word ya existente de la siguiente forma:

dim w as object

on error resume next
set w =GetObject("Word.Application")
if err.number <> 0 then
set w = CreateObject("Word.Application")
endif

En cualquiera de los dos casos, puedes verificar si el objeto existe, cuando te de un mensaje de error al tratar el objeto correspondiente, por ejemplo, si el usuario, te cierra el word.
A parte de este objeto que te valdría para toda la aplicación, te puedes crear instancias a otros objetos.
Recuerda que para usar la primera parte de ejemplos que te he propuesto, debes habilitar las referencias al WORD, en caso contrario no veras los objetos correspondientes.
Luego puedes pulsar F2 para ver todos los objetos, clases y propiedades del WORD.

    Pregunta:  14272 - PRESENTACION NOMBRES DE TABLAS
Autor:  JAVIER NAVARRO CASADO
ACCESS'97 con WIN'98
No se como hacer que en un cuadro combinado o lista de un formulario me aparezcan los nombres de las tablas (o algunas de ellas mediante filtrado) de la base de datos que tengo abierta. La solución de emergencia aplicada es teclearme los nombres en una matriz y posteriormente introducirlos en el cuadro combinado. ¿Hay algún sistema de automatizar el proceso para que cada vez que creo una nueva tabla, no tenga que introducirla a mano en la matriz?
¿Alguien puede ayudarme?. Gracias
  Respuesta:  Luis Fernando Melo
Hola
puedes accesar a la coleccion de tablas de la siguiente manera
Al control cuadro combiando cambiale la propiedad "Tipo de origen de la fila" a "Lista de valores"

El siguiente ejemplo carga todas las tablas a un combobox llamado cbotablas

Private Sub Form_Load()
Dim t As TableDef
Dim slista As String
slista = ""
For Each t In DBEngine(0)(0).TableDefs
slista = slista & ";" & t.Name
Next t
Me.cbotablas.RowSource = slista

End Sub

NOTA: Tenga en cuenta que separador de listas está usando en su configuración regional del sistema ya que es probable que no funcione con ; sino con ,

    Pregunta:  14354 - REDONDEO DE DECIMALES PARA EL EURO
Autor:  Iñaki Ramos
Estoy adaptando diversas aplicaciones que he desarrollado bajo Access 97 al Euro, y me encuentro con el problema de que no soy capaz de hacer redondear el tercer decimal siguiendo la normativa. Esto es, que aunque dependiendo del formato que le aplique al campo, pueda ver dos decimales redondeados, Access mantiene el número real de decimales -y sin redondear-, de manera que aunque sea una cantidad en principio despreciable, esta se puede convertir en importante al acumularse.
Por otra parte si le digo a Access que lo redondee, lo hace en la unidad. A ver sin alguien me puede ayudar. Gracias.
  Respuesta:  Jesús Palacio
De lo que he sudado dire:

Que en Access 2000 veo que esta incorporada la fución Round(Numero,nDecimales). Y que en Access 97 no aparece de ninguna manera.

Pero mira por donde en la Excel si aparece una funcion que se conoce con el nombre Redondear(Numero;nDecimales)

Pues nada Referencias en Access 97 el fichero donde se encuentran las funciones de Excell. Y ya tienes tu función Round incorporada a Access 97 y todas las demas de Excel

Y de verdad que tu redondeo de Euros te lo agradecera.

Sí quieres los pasos uno a uno me los pides. Ya que sí lo pongo aqui nunca se si ayudo de verdad a alguien o escribo por escribir.
  Respuesta:  Vicente Murcia Perez
' function que se incluye en los controles - después de actualizar -
' para dar formato a los números
Function FDeci()
Screen.ActiveControl = 0 + Format(Screen.ActiveControl, "#########0.00")
End Function

' function que se incluye en las rutinas de cálculo para dar formato
' a los resultados
Function FDeci1(num As Double)
FDeci1 = 0 + Format(num, "#########0.00")
End Function
  Respuesta:  Jose Luis Pascual
Hola,

Yo no soy programador profesional, vaya esto por delante.

Sin embargo puedo decirte que en Access 2000 existe la funcion Euroconvert() que te hace todo el trabajo ¿No existe en Access 97?

Saludos

    Pregunta:  14693 - MENUS PERSONALIZADOS EN ACCESS
Autor:  Reme
Buenos dias:

He creado un programa que automaticamente genera otro mdb con una serie de tablas y formularios. Bien, en el generador he creado una barra de menus personalizada y quiero llevarla tambien automaticamente a ese otro mdb que creo en tiempo de ejecución. He intentado hacer esto por codigo pero no lo consigo, hay una manera de copiar una barra en otra pero dentro de la misma aplicación y yo lo necesitaria de una a otra.
Muchas gracias.
  Respuesta:  KALDE
Para resolver el problema que tienes sin complicarse mucho la vida, yo me crearía una macro que importase las barras de herramientas y lo menús de la aplicación y luego llamaría a esa macro desde código.

    Pregunta:  14761 - INICIO DE APLICACION EN ACCESS
Autor:  JAVIER NAVARRO CASADO
Buenas noches:
¿Como puedo conseguir que al iniciar una aplicación en Access, me aparezca en pantalla solamente el formulario de inicio sin la ventana de base de datos de Access, barra de menús , barra de herramientas, barrade estado, ni ninguna otra cosa?
Gracias por la ayuda
  Respuesta:  Berenice Leal
Es muy sencillo lo que tienes que hacer:

Haz un modulo y pon lo siguiente:

/////////////////Codigo del Modulo//////////////////////////
'Referencia necesaria: Microsoft DAO 3.6 Object Library
Option Compare Database
Option Explicit

Function ap_DisableShift()
On Error GoTo errDisableShift
Dim db As DAO.Database, prop As DAO.Property
Const conPropNotFound = 3270
Set db = CurrentDb
db.Properties("AllowByPassKey") = False
Exit Function

errDisableShift:
If Err = conPropNotFound Then
Set prop = db.CreateProperty("AllowByPassKey", dbBoolean, False)
db.Properties.Append prop
Resume Next
Else
MsgBox Err.NUMBER & " / " & Err.DESCRIPTION, vbInformation + vbOKOnly, "A V I S O"
Exit Function
End If
End Function

Function ShowDBWindow()
On Error GoTo ShowDBWindow1
Dim db As DAO.Database, prop As DAO.Property
Const conPropNotFound = 3270
Set db = CurrentDb
db.Properties("StartupShowDBWindow") = False
Exit Function

ShowDBWindow1:
If Err = conPropNotFound Then
Set prop = db.CreateProperty("StartupShowDBWindow", dbBoolean, False)
db.Properties.Append prop
Resume Next
Else
MsgBox Err.NUMBER & " / " & Err.DESCRIPTION, vbInformation + vbOKOnly, "A V I S O"
Exit Function
End If
End Function

Function ShowStatusBar()
On Error GoTo ShowStatusBar1
Dim db As DAO.Database, prop As DAO.Property
Const conPropNotFound = 3270
Set db = CurrentDb
db.Properties("StartupShowStatusBar") = False
Exit Function

ShowStatusBar1:
If Err = conPropNotFound Then
Set prop = db.CreateProperty("StartupShowStatusBar", dbBoolean, False)
db.Properties.Append prop
Resume Next
Else
MsgBox Err.NUMBER & " / " & Err.DESCRIPTION, vbInformation + vbOKOnly, "A V I S O"
Exit Function
End If
End Function

Function AllowBuiltinToolbars()
On Error GoTo BuiltinToolbars1
Dim db As DAO.Database, prop As DAO.Property
Const conPropNotFound = 3270
Set db = CurrentDb
db.Properties("AllowBuiltinToolbars") = False
Exit Function

BuiltinToolbars1:
If Err = conPropNotFound Then
Set prop = db.CreateProperty("AllowBuiltinToolbars", dbBoolean, False)
db.Properties.Append prop
Resume Next
Else
MsgBox Err.NUMBER & " / " & Err.DESCRIPTION, vbInformation + vbOKOnly, "A V I S O"
Exit Function
End If
End Function

Function FullMenus()
On Error GoTo FullMenus1
Dim db As DAO.Database, prop As DAO.Property
Const conPropNotFound = 3270
Set db = CurrentDb
db.Properties("AllowFullMenus") = False
Exit Function

FullMenus1:
If Err = conPropNotFound Then
Set prop = db.CreateProperty("AllowFullMenus", dbBoolean, False)
db.Properties.Append prop
Resume Next
Else
MsgBox Err.NUMBER & " / " & Err.DESCRIPTION, vbInformation + vbOKOnly, "A V I S O"
Exit Function
End If
End Function

Function ToolbarChanges()
On Error GoTo ToolbarChanges1
Dim db As DAO.Database, prop As DAO.Property
Const conPropNotFound = 3270
Set db = CurrentDb
db.Properties("AllowToolbarChanges") = False
Exit Function

ToolbarChanges1:
If Err = conPropNotFound Then
Set prop = db.CreateProperty("AllowToolbarChanges", dbBoolean, False)
db.Properties.Append prop
Resume Next
Else
MsgBox Err.NUMBER & " / " & Err.DESCRIPTION, vbInformation + vbOKOnly, "A V I S O"
Exit Function
End If
End Function

Function SpecialKeys()
On Error GoTo SpecialKeys1
Dim db As DAO.Database, prop As DAO.Property
Const conPropNotFound = 3270
Set db = CurrentDb
db.Properties("AllowSpecialKeys") = False
Exit Function

SpecialKeys1:
If Err = conPropNotFound Then
Set prop = db.CreateProperty("AllowSpecialKeys", dbBoolean, False)
db.Properties.Append prop
Resume Next
Else
MsgBox Err.NUMBER & " / " & Err.DESCRIPTION, vbInformation + vbOKOnly, "A V I S O"
Exit Function
End If
End Function

Function ShortcutMenus()
On Error GoTo ShortcutMenus1
Dim db As DAO.Database, prop As DAO.Property
Const conPropNotFound = 3270
Set db = CurrentDb
db.Properties("AllowShortcutMenus") = False
Exit Function

ShortcutMenus1:
If Err = conPropNotFound Then
Set prop = db.CreateProperty("AllowShortcutMenus", dbBoolean, False)
db.Properties.Append prop
Resume Next
Else
MsgBox Err.NUMBER & " / " & Err.DESCRIPTION, vbInformation + vbOKOnly, "A V I S O"
Exit Function
End If
End Function

///////// Fin Modulo////////////////////

En el Load de tu forma pon el sigueinte Codigo:

Private Sub Form_Load()
Call ShowDBWindow
Call ShowStatusBar
Call AllowBuiltinToolbars
Call FullMenus
Call ToolbarChanges
Call SpecialKeys
Call ShortcutMenus

End Sub

Lo que hace este codigo es que deshabilita las propiedades y asi no te aparece nada al entrar. Y si quieres entrar en diseño puedes hacerlo con el Shift ya si despues necesites que te muestre otras cosas pues lo haces directamente desde el menu TOOLS->StartUp.
  Respuesta:  Luis Fernando Melo
Para quitar las opciones que dices ve al menu herramientas/inicio...

Aqui encontraras como quitar lo que tu dices. en un sola ventana .. es muy sencilo pruebalo.
  Respuesta:  Jorge Valencia
Hola Javier.

Espero esto te pueda ayudar.

Abre tu aplicación, selecciona del menú Herramientas la opción Inicio; Allí encontrarás todas las respuestas a las dudas que planteas.

Estas opciones son verdaderamente sencillas de aplicar, solamente estimo conveniente hacerte una recomendación y es por si llegas a desactivar la opción que Permite el uso de las barras de herramientas incorporadas, o la opción que desactiva el uso de las teclas especiales de Access (esta la encontrarás oprimiendo el botón Avanzadas). Si estas opciones (especialmente la segunda) están desactivadas, la proxima vez que entres a tu aplicación no podrás tener acceso a la ventana de base de datos (la cual necesitarás en algún momento para hacerle alguna modificación a tu aplicación). Pero no te preocupes que esto se soluciona manteniendo oprimida la tecla Shift desde tu teclado (perdón por la redundancia) al mismo tiempo que das clic al nombre del archivo que contiene tu aplicación. De esta manera Microsoft Access te mostrará nuevamente la ventana de base de datos y todos felices !.

Bye

    Pregunta:  14841 - VERIFICAR LA EXISTENCIA DE UNA TABLA
Autor:  Eduardo Aballay
Hola saludos a todos.
(programo en ACCESS 97)
Alguien puede decirme como saber desde código; si existe una tabla .Es decir seria un equivalente a IF FILE(nombre del archivo), de otros lenguajes.
Desde ya les agradezco.
  Respuesta:  Luis Fdo Melo
Hola
Puedes saber si existe una tabla accesando la coleccion de tablas de la siguiente manera:

Dim T as TableDef
Dim sNameTable as String

sNameTable = "myTable"

for each T in dbengine(0)(0).TableDefs
if sNameTable = T.Name then
msgbox "La tabla myTable existe"
exit for
end if
next T

Puedes implementar este codigo en una funcion ....

|<  <<  19 20 21 22 23 24 25 26 27 28 29  >>  >|