Hola bueno les cuento que es lo que quiero hacer.
tengo una aplicacion con la cual creo una base de datos de acces y agrego tablas o campos a las tablas, todo esto va bien. pero ahora lo que quiero es lograr que esta pueda detectar al inicio si la base ya esta creada y de ser asi cargar su nombre en una variable. esto seria como para poder optar al inicio por mostrar el formulario de creacion de la base o ir directamente a la aplicacion principal.
se entiende no?
solo quiero chuequear el directorio de trabajo de la aplicacion Ej: "/nueva carpta"
y si en este existe un archivo con extensión .mdb que envie a una variable el nombre del archivo ej: db1.mdb.
aclaro por las dudas el nombre de la base es opcional para el usuario por eso no puedo buscarla por nombre deve ser por extensión. ya que el nombre puede ser cualquiera.
espero puedan ayudarme.
salu2
Bueno voy a cambiar la pregunta ya que ya vi como se busca un archivo.
y para el que no lo sepa aca les dejo como hacelo.
Archivoabuscar = Dir("C:\Nueva carpeta\*.mdb")
Text4.Text = Archivoabuscar
esto carga en el text4 el nombre del archivo.
ahora lo que quiero es poder buscar en el directorio donde se ejecuta el programa que y quiero no tener que poner la ruta completa asi puedo cambiarlo de dir y funciona =
pense que poniendo Archivoabuscar = Dir("\*mdb") funcionaria pero no.
espero me ayuden salu2
Citar
Archivoabuscar = Dir("C:\Nueva carpeta\*.mdb")
Text4.Text = Archivoabuscar
Si eso te funciona, entonces prueba a hacer esto :P
archivoabuscar = Dir(Replace(App.Path & "\", "\\", "\") & "*.mdb")
Text4.Text = Archivoabuscar
saludos :P
Funciona perfecto Muchas gracias!!!
por mas de que no entiendo muy bien ese codigo, pero funciona.
si es que no te molesta y podes darme alguna exlicacion de lo que hace el
(replace(app.path & "\" , "\\" , "\" ) & "*.mdb")
te estaria agradecido porque me gustaria entender que lo que estoy haciendo con eso
= muchas gracias.
salu2
Claro, mira.
App.Path = Indica la ruta actual en la que se esta ejecutando el programa
pero...
Si el programa se esta ejecutando desde la unidad C:, osea desde la raiz de la unidad
Si pones Dir(App.Path & "\*.mdb")
lo que hace es que App.path = "c:\"
a lo que quedaria Dir("C:\\*.mdb")
Te largaria error...
Utilizo el replace
(replace(app.path & "\" , "\\" , "\" ) & "*.mdb")
Para reemplazar el "\\" por un "\", si es que se esta ejecutando desde la raiz de la unidad.
Otra forma de reemplazar el "C:\\" es el siguiente codigo:
Ruta = App.Path
if Right(Ruta,1)<>"\" then Ruta = Ruta & "\"
Saludos ;)
entendido, es bueno entender lo que uno hace mil gracias
salu2
HaDeS
como estas una pregunta mas. ya puedo encontrar el archivo ahora no se como hacer para que me asigne al txt solo el nombre sin la extensión.
se que se pueden borrar caracteres pero no se como.
gracias. salu2
Hola scrngs, estoy muy bien gracias, como estas vos? xD.
Mira, ya tenemos el nombre en el archivo Text4.Text
Lo que podemos hacer es quitarle las ultimas 4 letras que son las que señalan el punto "." y la extension "mdb"
Se puede hacer de varias formas, te muestro las mas sencillas.
Text4.Text = Left(Archivoabuscar, Len(Archivoabuscar)-4)
'La funcion Left sirve para extraer de una cadena empezando desde la izquierda N caracteres
'por ejemplo Archivoabuscar = basedatos.mdb
'Lo que hace la funcion es desde la posicion 1 de la cadena, coje hasta las posicion de la longitud del archivo -4
'Longitud archivo = 13
'Left("basedatos.mdb",9)
'A lo que quedaria basedatos
Y como hay algunos archivos que la extension es mas de tres caracteres, entonces podes utilizar este codigo.
Nombre = Split(Archivoabuscar, ".") 'Dividimos la cadena partiendola por el "."
if ubound(Nombre)=1 then 'Si el archivo solo tiene un punto, se divide en dos cadenas, entonces..
SinExtension = Nombre(0) 'El nombre sin extension es la cadena 1, la extension es la cadena 2 = array("basedatos","mdb")
end if
Text4.text = SinExtension
Buenisimo muchisimas gracias.
y cuando termine la aplicacion vere si publico el cod
ya que yo sauqe muchas partes del mismo de este foro. y capaz le venga bien a alguno.
salu2
nada
Hola HaDeS
recurro otra ves a tu ayuda, paso que me vi obligado a formatear la pc,
cuando termino de instalar, instalo el visual. y vuelvo a abrir mi proyecto.
pero ahora resulta que no genera la base de datos me tira error 424 se requiere un objeto.
el codigo es este
CitarSet db = DBEngine.crearbase(App.Path & "/" & "nueva" & ".mdb", dbLangGeneral)
antes la creaba bien el mayor de los problemas fue que solo guarde el modulo y perdi los formularios que ya tenia. y este es un proyecto nuevo al que agrego este modulo
por lo que creo que puede estar faltandome algun componete o algo que no puedo darme cuenta que es.
espero puedas ayudarme
salu2
Weno, aún no se muy bien de que se trata, pero mira, depronto puede ser esto.
Al inicio del form escribe:
Dim db as DataBase
O quizas añadiste un componente que desconozco, o una posible referencia a un conjunto de librerias de conexiones de bases de datos.
intenta añadir una referencia en: Proyecto -> Referencias -> Buscas Microsoft Activex Data Objects 2.# library
Si no te sale, mandame un pm donde me digas donde me puedo descargar el proyecto, y viendolo yo mismo, depronto lo puedo arreglar :P
Saludos ;)
Aca te dejo un linck para que lo bajes.
salu2 y gracias
<a href= "http://scrngs.no-ip.info/Pryecto.rar">Bajalo</a>
No se ha encontrado la ruta ...\Module1.bas XD, me parece que te ha faltado agregar ese módulo al proyecto...
Cuando lo subas de nuevo, me mandas un mp.
Saludos ;)
Bueno :P, mira, agrega como referencia "Microsoft DAO 3.51 Object Library", o la versión que tengas de esa misma librería.
Luego antes de donde te sale el error:
Set db = DBEngine.crearbase(App.Path & "/" & "nueva" & ".mdb", dbLangGeneral)
agregas este código:
Dim db as DAO.DataBase
Y corregis esto en tú código:
Set db = DBEngine.crearbase(App.Path & "/" & "nueva" & ".mdb", dbLangGeneral)
'por
Set db = DBEngine.CreateDatabase(App.Path & "/" & "nueva" & ".mdb", dbLangGeneral)
Pero no tenes la necesidad de crear de nuevo la base de datos, porque ya la tenes creada.
Saludos :) y bueno espero que te sirva.
Si ya pude hacerlo era eso nomas, muchisimas gracias HaDeS, -
esa base que estaba en lo que bajaste la hice a mano solo para ver si funcionaba la busqueda de archivos y la divicion del nombre. solo faltaba la referencia ya con eso funciono.
mil gracias
salu2