Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    66

    [VB]Problema connessione db

    Mi da questo errore quando eseguo la sub
    runtime '-2147467259(80004005)'


    Il codice è il seguente

    Sub EseguiQuery()

    Dim sSql As String
    Dim sWhere As String
    Dim db As String

    Dim Conn As ADODB.Connection
    Set Conn = New ADODB.Connection
    Dim RSt As ADODB.Recordset


    db = "E:\Database18.mdb"

    MI DA ERRORE SULLA OPEN
    Conn.Open db

    sSql = "SELECT Clienti.Cod_Cliente, Clienti.Cognome, Clienti.Nome, Clienti.Città, Clienti.[Indirizzo 1], Clienti.[Indirizzo 2], Clienti.CAP, Clienti.[Telefono 1], Clienti.[Telefono 2], Clienti.Cellulare, Clienti.FAX, Clienti.Email, Clienti.[Data di Nascita], Clienti.Nazionalità, [Categoria Professionale].[Tipo categoria], [Categoria Classe].[Categoria Classe]FROM [Categoria Professionale] INNER JOIN ([Categoria Classe] INNER JOIN Clienti ON [Categoria Classe].Cod_classe = Clienti.Cod_Classe) ON [Categoria Professionale].cod_Categoria = Clienti.Cod_Categoria"

    sWhere = ""

    If txtCognome.txt <> "" Then
    sWhere = sWhere & " Clienti.Cognome LIKE '" & Replace(txtCognome.txt, "'", "''") & "'"
    End If

    If txtNome.txt <> "" Then
    If sWhere <> "" Then sWhere = sWhere & " AND "
    sWhere = sWhere & " Clienti.Nome LIKE '" & Replace(txtNome.txt, "'", "''") & "'"
    End If

    If sWhere <> "" Then
    sSql = sSql & " WHERE " & sWhere
    End If

    Set RSt = Conn.Execute(sSql)

    End Sub

    Come lo risolvo?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quando fai la Open della connessione (oggetto Conn) non basta il nome del database.

    E' necessaria una "stringa di connessione" in cui devono essere indicate alcune informazioni ... vedi sull'help o su un qualsiasi testo di riferimento ... (oltre che a fare qualche ricerca su questo stesso forum).

    P.S. Devi sempre indicare la versione del VB ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    191
    Se è vb6 devi fare una cosa del genere:

    Set cn = New ADODB.Connection

    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & App.Path & "\nomedatabase.mdb"

    cn.Open

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    66
    VB che utilizzo è quello che c'è in Access nel pacchetto Office XP
    non funziona quello che mi hai scritto -.-
    cerco nell'help e nel forum intanto

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    66
    Mi dice che gli argomenti non sono di tipo valido, non sono compresi nell'intervallo consentito o sono in conflitto
    devo modificare la stringa sull'open????


    Sub EseguiQuery()

    Dim sSql As String
    Dim sWhere As String

    Dim Conn As ADODB.Connection
    Set Conn = New ADODB.Connection
    Dim RSt As ADODB.Recordset


    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Database18.mdb; User ID=admin;Password="";"

    sSql = "SELECT Clienti.Cod_Cliente, Clienti.Cognome, Clienti.Nome, Clienti.Città, Clienti.[Indirizzo 1], Clienti.[Indirizzo 2], Clienti.CAP, Clienti.[Telefono 1], Clienti.[Telefono 2], Clienti.Cellulare, Clienti.FAX, Clienti.Email, Clienti.[Data di Nascita], Clienti.Nazionalità, [Categoria Professionale].[Tipo categoria], [Categoria Classe].[Categoria Classe]FROM [Categoria Professionale] INNER JOIN ([Categoria Classe] INNER JOIN Clienti ON [Categoria Classe].Cod_classe = Clienti.Cod_Classe) ON [Categoria Professionale].cod_Categoria = Clienti.Cod_Categoria"

    sWhere = ""

    If Cognome <> "" Then
    sWhere = sWhere & " Clienti.Cognome LIKE '" & Replace(Cognome, "'", "''") & "'"
    End If

    If Nome <> "" Then
    If sWhere <> "" Then sWhere = sWhere & " AND "
    sWhere = sWhere & " Clienti.Nome LIKE '" & Replace(Nome, "'", "''") & "'"
    End If

    If sWhere <> "" Then
    sSql = sSql & " WHERE " & sWhere
    End If

    Set RSt = Conn.Execute(sSql)

    End Sub

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    191
    Diamine, ma se scrivi il codice in modo diverso da quello che ti ho postato come pretendi che vada?

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    191
    Option explicit
    private cn as adodb.connection
    privare rs as adodb.recordset


    Sub EseguiQuery()

    Dim sSql As String
    Dim sWhere As String


    set cn=new adodb.connection
    cn.connectionstring ="Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & App.Path & "\nomedatabase.mdb"


    Conn.Open

    sSql = "SELECT Clienti.Cod_Cliente, Clienti.Cognome, Clienti.Nome, Clienti.Città, Clienti.[Indirizzo 1], Clienti.[Indirizzo 2], Clienti.CAP, Clienti.[Telefono 1], Clienti.[Telefono 2], Clienti.Cellulare, Clienti.FAX, Clienti.Email, Clienti.[Data di Nascita], Clienti.Nazionalità, [Categoria Professionale].[Tipo categoria], [Categoria Classe].[Categoria Classe]FROM [Categoria Professionale] INNER JOIN ([Categoria Classe] INNER JOIN Clienti ON [Categoria Classe].Cod_classe = Clienti.Cod_Classe) ON [Categoria Professionale].cod_Categoria = Clienti.Cod_Categoria"

    sWhere = ""

    If Cognome <> "" Then
    sWhere = sWhere & " Clienti.Cognome LIKE '" & Replace(Cognome, "'", "''") & "'"
    End If

    If Nome <> "" Then
    If sWhere <> "" Then sWhere = sWhere & " AND "
    sWhere = sWhere & " Clienti.Nome LIKE '" & Replace(Nome, "'", "''") & "'"
    End If

    If sWhere <> "" Then
    sSql = sSql & " WHERE " & sWhere
    End If

    Set RSt = Conn.Execute(sSql)

    End Sub

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    66
    mi dava errore sul codice che mi avevi scritto nel primo post......
    ora mi errore di variabile non definita qui
    cn.connectionstring ="Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & App.Path & "\nomedatabase.mdb"

    non sapendo programmare in VB chiedo..........

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    191
    Ovviamente il database che hai, scrivendo quel codice, deve essere dentro la cartella dove hai salvato il file...

  10. #10
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Zlatan, Astharot ha detto che sta programmando con il VBA di Access, per cui è inutile insistere nello specificare App.Path per reperire il percorso relativo all'applicazione, in quanto l'oggetto App e la relativa proprietà Path, non esistono in Access, da qui l'errore lamentato.

    Per ottenere il percorso del Database Access è possibile utilizzare l'oggetto CurrentProject, che mette a disposizione la proprietà Path:

    codice:
    ... "Data Source=" & CurrentProject.Path & "\nomedatabase.mdb"
    Boolean

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.