Foros del Web » Programando para Internet » ASP Clásico »

Problemas en búsqueda con asp y access

Estas en el tema de Problemas en búsqueda con asp y access en el foro de ASP Clásico en Foros del Web. Hola a todos; Estoy tratando de hacer unas pruebas usando asp y access en el único servidor gratuito que pude accesar que es 1asphost.com pero ...
  #1 (permalink)  
Antiguo 10/05/2005, 09:51
 
Fecha de Ingreso: mayo-2003
Mensajes: 70
Antigüedad: 21 años
Puntos: 1
Información Problemas en búsqueda con asp y access

Hola a todos;
Estoy tratando de hacer unas pruebas usando asp y access en el único servidor gratuito que pude accesar que es 1asphost.com pero no me funciona, no me muestra el resultado de la búsqueda en 0access, no sé si es problema del servidor o de mi código. Les comento lo que hice: Tengo una página llamada index.htm donde pido el nombre del producto a buscar, al escribir dicho nombre y presionar el botón Buscar es llamada otra página "buscarproducto.asp" que es la que hace la búsqueda y me retorna en caso de encontrarlo el nombre, la descripción y el precio de la medicina buscada, en caso contrario me retorna un mensaje diciendo que no la encontró y que vuelva a intentarlo.

Les anexo a este mensaje el código de las páginas: index.htm y buscarproducto.asp, la bd farmacia.mdb cuya tabla se llama productos lo que tiene es nombre, descripcion y precio, las 3 tipo texto. Les agradezco si por favor lo pueden revisar para saber cuál es el problema.


index.htm:

<html>

<head>
<title>Inserción de datos</title>
</head>

<body bgcolor="#00CC99">

<p align="center">&nbsp;</p>
<p align="center"><font color="#000080" face="Comic Sans MS" size="3">Ingrese el
nombre del producto</font></p>

<form method="POST" action="buscarproducto.asp">
<div align="center">
<center>
<table border="0">
<tr>
<td><br>
&nbsp;<font face="Comic Sans MS" color="#000080">Nombre:</font></td>
<td><br>
<input type="text" name="nombre" size="27">
</td>
</tr>
<tr>
<td></td>
<td>
</td>
</tr>
<tr>
<td colspan="2">
<p align="center"><br>
<input type="submit" value="Buscar"></td>
</tr>
</table>
</center>
</div>
</form>

<p align="center"><font color="#FFFFFF" face="Comic Sans MS" size="2"><b>Nota:
Tipee el nombre a buscar con sus respectivos acentos, sino coloque las tres
primeras letras.</b></font></p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>

</body>

</html>



buscarproducto.asp:

<HTML>
<HEAD>
<TITLE>buscarproducto.asp</TITLE>
</HEAD>
<BODY bgcolor="#00CC99" link="#FFFF00" vlink="#FFFF00" alink="#FFFF00">

<%
'Recogemos los valores del formulario
nombre= Request.Form("nombre")
if nombre = "" then%>
<p align="center">&nbsp;</p>

<p align="center">&nbsp;</p>

<p align="center">&nbsp;</p>

<p align="center"><font color="#FFFFFF" face="Comic Sans MS" size="3">Debes
tipear un nombre a buscar!</font></p>

<p align="center"><font face="Comic Sans MS" size="3" color="#FFFF00"><a href="buscar.htm">Buscar
de nuevo</a>&nbsp;</font></p>

<%else
'Instanciamos y abrimos nuestro objeto conexion
Set Conexion = Server.CreateObject("ADODB.Connection")
Set Tabla=Server.CreateObject("ADODB.Recordset")
Conexion.Open "farmacia"

'Ahora creamos la sentencia SQL
sSQL = "Select * from productos where InStr(nombre, '" & nombre & "' )>0"
Tabla.Open sSQL, Conexion

'Ejecutamos la orden
set RS = Conexion.Execute(sSQL)

if (Tabla.bof and Tabla.eof) then%>
<p align="center">&nbsp;</p>
<p align="center"><font face="Comic Sans MS" color="#FFFFFF">No hay nada similar
al dato ingresado. Inténtalo con otro nombre!</font></p>
<p align="center">&nbsp;</p>
<form method="POST" action="buscarproducto.asp">
<div align="center">
<center>
<table border="0" width="217">
<tr>
<td width="4">&nbsp;<font face="Comic Sans MS" color="#000080">Nombre:</font></td>
<td width="199"><input type="text" name="nombre" size="27"></td>
</tr>
<tr>
<td width="4"></td>
<td width="199"></td>
</tr>
<tr>
<td width="4"></td>
<td width="199">
<p align="center"><input type="submit" value="Buscar"></p>
</td>
</tr>
</table>
</center>
</div>

<%'response.write("No hay nada similar al dato ingresado")
else
'Mostramos los registros%>

</form>

<p align="center">&nbsp;</p>

<p align="center"><font face="Comic Sans MS" color="#FFFF00">Este es el
resultado de nuestra búsqueda!</font></p>

<div align="center">
<div align="center">
<center>
<table border="0">
<tr>
<td><font face="Comic Sans MS" color="#000080">Nombre&nbsp;&nbsp; </font></td>
<td><font face="Comic Sans MS" color="#000080">Descripción&nbsp;&nbsp; </font></td>
<td><font face="Comic Sans MS" color="#000080">Precio</font></td>
</tr>
<% do while not RS.eof %>
<tr>
<td><%=RS("nombre")%></td>
<td></td>
<td><%=RS("descripcion")%></td>

</tr>
<% RS.movenext
loop
end if
Conexion.close
end if%>

</table>
</center>
</div>
</div>
<p align="center">&nbsp;</p>
</BODY>
</HTML>
  #2 (permalink)  
Antiguo 10/05/2005, 10:30
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Pero... ¿da algún error o simplemente no hace la búsqueda y retorna el "mensaje diciendo que no la encontró y que vuelva a intentarlo"?

Sería bueno saberlo antes de ponerme en la tarea de leer tu código
__________________
...___...
  #3 (permalink)  
Antiguo 10/05/2005, 13:26
 
Fecha de Ingreso: septiembre-2004
Mensajes: 36
Antigüedad: 19 años, 8 meses
Puntos: 0
Has puesto

Código:
Conexion.Open "farmacia"
No has puesto que vale farmacia suponiendo que fuera una variable (y entonces lo habrias puesto mal). Deberias poner algo como

Código:
Dim farmacia

farmacia="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("farmacia.mdb")&""
Y luego poner
Código:
Conexion.Open (farmacia)
Saludos.
__________________
A cada cual según su necesidad, de cada cual según su capacidad.
  #4 (permalink)  
Antiguo 10/05/2005, 17:42
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
ramonkill, me imagino que "farmacia" será un DSN.
mari, el DSN farmacia está creado en tu servidor gratuito? si no lo está, tienes que abrir la base de datos como te ha dicho ramonkill.
  #5 (permalink)  
Antiguo 11/05/2005, 09:50
 
Fecha de Ingreso: mayo-2003
Mensajes: 70
Antigüedad: 21 años
Puntos: 1
Busqueda Explico mejor los problemas en búsqueda con asp y access

Hola a todos;
El mensaje de error que me retorna es el siguiente:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

/mlucente/buscarproducto.asp, line 29

Ramonkill me comentaba que declarara la bd farmacia y que colocara la ruta de acceso como sigue:
Dim farmacia

farmacia="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("farmacia.mdb")&""

Conexion.Open (farmacia)

al retornarme el error se ubica en la línea de código 29 que es: Conexion.Open (farmacia)

La dirección del ejemplo de prueba que estoy haciendo está en:
http://b.1asphost.com/mlucente/index.htm

y unos de los medicamentos que tengo en la tabla productos de la bd farmacia es Buscapina.

Les agradezco de corazón su ayuda;
Mari.
  #6 (permalink)  
Antiguo 11/05/2005, 15:19
 
Fecha de Ingreso: septiembre-2004
Mensajes: 36
Antigüedad: 19 años, 8 meses
Puntos: 0
¿En que carpeta tienes la base de datos? En la función sever.mappath tienes que colocar la direccion virtual de la base de datos. A lo mejor es eso porque si declaras bien la conexión y tambien la cadenaDSN entonces no tiene porque haber error.
Saludos.
__________________
A cada cual según su necesidad, de cada cual según su capacidad.
  #7 (permalink)  
Antiguo 12/05/2005, 07:38
 
Fecha de Ingreso: mayo-2003
Mensajes: 70
Antigüedad: 21 años
Puntos: 1
De hecho, tanto la base de datos farmacia como los archivos index.htm y buscarproducto.asp están en el servidor sin carpeta.
  #8 (permalink)  
Antiguo 12/05/2005, 08:53
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 4 meses
Puntos: 2
vi tu pagina y el error es por que no encuentra la bd prueba cambiando estas lineas

tu code
Código:
Set Conexion = Server.CreateObject("ADODB.Connection")
Set Tabla=Server.CreateObject("ADODB.Recordset")
Conexion.Open "farmacia"
nuevo
Código:
set conexion=Server.CreateObject("ADODB.Connection")
set tabla=Server.CreateObject("ADODB.Recordset")

conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("farmacia.mdb")&";"
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #9 (permalink)  
Antiguo 12/05/2005, 10:12
 
Fecha de Ingreso: mayo-2003
Mensajes: 70
Antigüedad: 21 años
Puntos: 1
Por fiiiiiinnn me funcionó. Mil gracias a todos y un besote!!!.
  #10 (permalink)  
Antiguo 12/05/2005, 17:56
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 4 meses
Puntos: 2
oye y que era?
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #11 (permalink)  
Antiguo 13/05/2005, 10:10
 
Fecha de Ingreso: mayo-2003
Mensajes: 70
Antigüedad: 21 años
Puntos: 1
Amigo, era lo que tu me decías, cambié el código de acceso a la bd y me funcionó. Muchas gracias.
Cualquier otra cosa les pego un grito.
Saludos y un abrazo.
  #12 (permalink)  
Antiguo 13/05/2005, 10:54
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 4 meses
Puntos: 2
ok de nada nos belmont y el grito que no sea muy fuerte que puedo estar

__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:01.