Usuario
problema con VB + msaccess

Pregunta
-
Hola a todos:
Estoy desarrollando un programita y me aparece este error que no me permite conectar bien con la base de datos. No consigo saber como solucionarlo. Me aparece al depurar el codigo. Surge en una linea de codigo y la subraya de color amarillo. Este es el error que me aparece, y seguidamente os he puesto las posibles soluciones que me aparecen:
Espero que podáis ayudarme:
System.Data.OleDb.OleDbExceptionSe genera una excepción OleDbException cuando un origen de datos de OLE DB devuelve una advertencia o un error.
- Compruebe que se está conectando con credenciales válidas.
-
Asegúrese de que las credenciales que está proporcionando son válidas. Para obtener más información, vea OleDbErrorCollection.
- Compruebe que el nombre del servidor es correcto y que se está ejecutando.
-
Asegúrese de que está utilizando el nombre del servidor correcto y que el servidor es alcanzable. Para obtener más información, vea OleDbErrorCollection.
Todas las respuestas
-
Podrias poner la cadena de conexion que estas utilizando para comprobarla?De todas maneras te recomiendo que le des un vistazo a este enlace : http://www.connectionstrings.com/access-2007
Si la respuesta te ha sido util Marcala como Respuesta o Votala.
Mi Blog: Jtorrecilla -
hola
veo que comentas que la db es Access, pero no aclaras que version estas usando, ojo que el connection string cambia si es un access version 2007 u otra version
esto lo comento porque jtorrecilla puso un link en donde estan la cadenas de conexion a access 2007
la verdad nunca intente usar el provider de access2007 puede aceder a una db de la version anterior, por ahi si se pueda, pero bueno recuerda que alli mismo estan los connection string de la versiones anteriores de Access, o sea si usas una .mdb
Connection strings for Access
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
La cadena de conexión que he utilizado es la siguiente:
PrivateconnStrTelef2000 As String = "Data Source=""E:\...telef2000.mdb""; Jet OLEDB:Engine Type=4;Provider=""Microsoft.Jet.OLEDB.4.0"";Mode=Share Deny None;User ID=Admin"
Estoy utilizando visual studio 2008 con access 2003 ¿puede haber incompatibilidad? -
Hola mira aqui para comprobar la cadena de conexion.Podrias poner un poco de tu código para ver si hay algun error qu se te haya podido pasar?
Si la respuesta te ha sido util Marcala como Respuesta o Votala.
Mi Blog: Jtorrecilla -
Aquí te pongo parte del código, a ver si puedo solucionar esto.
Me estas siendo de gran ayuda, muchas gracias.
PublicClass frmDB
Private telef2000DataSet1 As New telef2000DataSet
Private taLagunak As New telef2000DataSetTableAdapters.LagunakTableAdapter
Private taHerriak As New telef2000DataSetTableAdapters.HerriakTableAdapter
Private taTelefonoak As New telef2000DataSetTableAdapters.TelefonoakTableAdapter
Private dvLagunak As DataView
Private dvHerriak As DataView
Private dvLagunenTelefonoak As DataView
Private zutabea As DataGridViewColumn
Private connStrTelef2000 As String = "Data Source=""E:\...telef2000.mdb""; Jet OLEDB:Engine Type=4;Provider=""Microsoft.Jet.OLEDB.4.0"";Mode=Share Deny None;User ID=Admin"
Private j As Integer = 0
Private Sub frmDB_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
taLagunak.Fill(telef2000DataSet1.Lagunak)
dvLagunak =
New DataView(telef2000DataSet1.Tables("Lagunak"))
dvHerriak =
New DataView(telef2000DataSet1.Tables("Herriak"))
dvLagunenTelefonoak =
New DataView(telef2000DataSet1.Tables("Telefonoak"))
dgrvTelefonoak.DataSource = dvLagunenTelefonoak
Dim bndIzena As New Binding("Text", dvLagunak, "Izena")
Dim bndLagunId As New Binding("Int32", dvLagunak, "LagunId")
txtIzena.DataBindings.Add(bndIzena)
txtLagunId.DataBindings.Add(bndLagunId)
dgrvTelefonoak.ReadOnly =
True
dgrvTelefonoak.Columns(
"LagunId").ReadOnly = True
InterfazeaBerritu(0)
End Sub
Private Sub txtIzena_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtIzena.TextChanged
If (txtBilaIzena.Text = "") Then
dvLagunak.RowFilter =
""
InterfazeaBerritu(0)
Else
dvLagunak.RowFilter =
"Izena LIKE ' " & txtBilaIzena.Text & "* '"
If dvLagunak.Count() = 0 Then
Beep()
dvLagunak.RowFilter =
""
End If
InterfazeaBerritu(0)
End If
End Sub
-
hola
veo que armas en connection string en una variable, pero no veo donde lo estes usando
tambien veo que usas tableadapter, por lo cual usas dataset tipados, si esto es asi seguramente el connection string que uses no esta definido en el codigo, sino que esta en algun archivo de configuracion
busca en tu aplicacion sino hay un archivo de nombre app.config
si lo encuentras revisa si ves un connection string a la db, cambialo por uno correcto
los tableadapter usan la cadena de conexion desde alli
Changing the connectionstring of a wizard generated TableAdapter at runtime from an ObjectDataSource
veras en el link como define publico el connection string y desde codigo lo modifica en las lineas
DataSet1TableAdapters.CustomersTableAdapter adapter = new DataSet1TableAdapters.CustomersTableAdapter();
adapter.Connection = conn;
primero crea la instancia del tableadapter y luego asigna una nueva conexion
pero si en tu caso quieres dejar la que esta en la configuracion tambien puede hacerlo, no hace falta que la varies por codigo
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -