none
problema con VB + msaccess RRS feed

  • 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.OleDbException

    Se 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.

    domingo, 27 de diciembre de 2009 12:19

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
    domingo, 27 de diciembre de 2009 13:15
    Moderador
  • 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
    domingo, 27 de diciembre de 2009 14:49

  • La cadena de conexión que he utilizado es la siguiente:

    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"

    Estoy utilizando visual studio 2008 con access 2003 ¿puede haber incompatibilidad?

    domingo, 27 de diciembre de 2009 19:24
  • 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
    domingo, 27 de diciembre de 2009 19:38
    Moderador
  • Aquí te pongo parte del código, a ver si puedo solucionar esto.

    Me estas siendo de gran ayuda, muchas gracias.



    Public

     

    Class 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

     

    domingo, 27 de diciembre de 2009 21:00
  • 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
    domingo, 27 de diciembre de 2009 22:36
  • Creo que con esto tengo las cosas más claras. Cuando lo tenga totalmente solucionado os lo diré.
    Muchas gracias a los dos. Me habeis aportado mucha ayuda.


    Un saludo,
    lunes, 28 de diciembre de 2009 14:32