Newsgroup: it.comp.appl.access
Titolo: problemi dopo conversione access97/acces xp

Ho convertito un mio database da "access 97" a "access xp" e premendo
il pulsante che attiva questa routine:
------------------------------------------------------------------------------
Private Sub Comando60_Click()
On Error GoTo Err_Comando60_Click
    Dim stDocName As String
    Dim stLinkCriteria As String
    Dim ctl As Control
    Dim varItm As Variant
    stDocName = "ConteggiCarico"
    Set ctl = Me!ElencoOrdini
    stLinkCriteria = "ORDINI.[IDordine]="
    For Each varItm In ctl.ItemsSelected
        stLinkCriteria = stLinkCriteria & ctl.ItemData(varItm) & " OR
ORDINI.[IDordine]="
    Next varItm
    stLinkCriteria = Left$(stLinkCriteria, Len(stLinkCriteria) - 22)
    '********************
    Dim MioDb As Database, str1, str2, str3, str11, str22 As String,
qdfTemp, qdfTemp2 As QueryDef
    str1 = "SELECT ORDINIrighe.IDordine, ORDINI.IDcliente,
ORDINIrighe.IDrigaOrd, ORDINIrighe.RifCli, ORDINIrighe.IDarticolo,
ORDINIrighe.DescrArticolo, ORDINIrighe.CostoArt, ORDINIrighe.Qtà,
ORDINIrighe.Sconto1, ORDINIrighe.Sconto2,
ORDINIrighe.Sconto3,((([CostoArt]*(100-[ORDINIrighe].[Sconto1])/100)*(100-[ORDINIrighe].[Sconto2])/100)*(100-[ORDINIrighe].[Sconto3])/100)
AS CostoScont, [CostoScont]*[Qtà] AS Prezzo, ORDINIrighe.Stato"
    str2 = " FROM ORDINI INNER JOIN ORDINIrighe ON ORDINI.IDordine =
ORDINIrighe.IDordine where " & stLinkCriteria
    str3 = " ORDER BY ORDINIrighe.IDrigaOrd"
 
    str11 = "SELECT ORDINI.IDordine, ORDINI.IDcliente,
Qclienti.Ragione_Sociale, Qclienti.Indirizzo,Qclienti.CAP,
Qclienti.Localita, Qclienti.Provincia, Qclienti.Partita_Iva,
Qclienti.Telefono, Qclienti.Fax, ORDINI.Data, ORDINI.NumOrdine,
ORDINI.NoteCli, ORDINI.Pagamento, ORDINI.Banca, ORDINI.CodZona,
ORDINI.CodSottozona, ORDINI.Agente, ORDINI.Listino, ORDINI.NoteOrd,
ORDINI.Zona, ORDINI.Sottozona, ORDINI.BancaSede, ORDINI.Agenzia"
    str22 = " FROM Qclienti RIGHT JOIN ORDINI ON
Qclienti.Codice_Anagrafica = ORDINI.IDcliente"
 
    Set MioDb = CurrentDb
 
    With MioDb
 
        Set qdfTemp = .CreateQueryDef("AAAA", str1 & str2 & str3)
        Set qdfTemp2 = .CreateQueryDef("BBBB", str11 & str22 & " where
" & stLinkCriteria)
        .Close
    End With
 
    DoCmd.OpenForm stDocName
    ', , , stLinkCriteria
Exit_Comando60_Click:
    Exit Sub
Err_Comando60_Click:
    MsgBox Error
    MsgBox "Selezionare un elemento della lista."
    Resume Exit_Comando60_Click
End Sub
-------------------------------------------------------------------------------
mi appare un messaggio di errore:
Errore di compilazione
tipo definito non definito dall'utnte
e mi evidenzia in blu la parte in errore:
Dim MioDb As Database
qualche consiglio?
Grazie .....
Renato

 Renato
Ti manca il riferimento a DAO che in accessXP non è più esplicito perchè
rimpiazzato da ADO
ciao AEOM

     Dim MioDb As Database, str1, str2, str3, str11, str22 As String,
qdfTemp, qdfTemp2 As QueryDef
cut
Attento che questo tipo di dichiarazione non funziona come pensi.
in questo modo le variabili: str1,str2,str3,str11 e qdftemp vengono
dichiarate come variant e non come tu immaginavi, come stringhe e querydef.
devi specificare il tipo per ciascuna variabile.
Sib

"Sib" <si...@SPAMiol.it> ha scritto nel messaggio
news:n14cb.110087$hE5.3...@news1.tin.it...

I danni materiali alle cose sono in effetti 2:
Dim MioDb As Database, str1 as String, str2 as String, str3 as String, str11
as String, str22 As String,
 qdfTemp as QueryDef, qdfTemp2 As QueryDef
Tralasciando il criterio di Nominazione, sul quale ognuno fa come vuole
(Purtroppo)....,
ti mancano i riferimenti a DAO, quindi per non incasinarti la vita nel
mettere prima DAO
poi ADO sempre che non.......ecc....!
Modifica così:
Dim MioDb As DAO.Database, str1 as String, str2 as String, str3 as String,
str11 as String, str22 As String,
 qdfTemp as DAO.QueryDef, qdfTemp2 As DAO.QueryDef
Ciao.
@Alex.