Newsgroup: it.comp.appl.access
Titolo: Primary Key con tabelle collegate

Rieccomi,
sto proseguendo con la modifica ad un DB che prima aveva tabelle e fe tutto 
in un unico Data Base.
Ho risolto il problema OpenRecordset, ma ora mi da noie con la chiave 
primaria.
Come accennato in un'altro post il DB unito funziona regolarmente, ma 
dividendo le tabelle da FE si blocca in alcuni punti.
In particolare ora che devo fare una stampa basata su una FORM mi si blocca 
su:
PIPPO.Index = "primarykey"
Come detto l'unica differenza che ora le tabelle sono collegate 
esternamente.
Ciao a tutti e grazie
Cesco 

 ...
Non � chiaro perch� hai bisogno del Index per "una stampa" e
cosa esattamente succede se "si blocca in alcuni punti".
Il solito problema �:
Seek con tabelle collegate
www.donkarl.com/it?FAQ6.10
-- 
HTH
Karl
*********
Access FAQ: 
www.donkarl.com/it

 ha scritto nel messaggio 
news:7607ajF...@mid.individual.net...

Di questo progetto che mi hanno passato mi � chiaro ben poco, ma il rischio 
� doverlo rifare tutto.
Si blocca in prossimit� di quella riga.
Private Sub OK_Click()
 Dim M As Recordset, PIPPO As Recordset, db2 As Database
 Set db2 = DBEngine.Workspaces(0).Databases(0)
 'Set M = db2.OpenRecordset("MENU")
 Set PIPPO = db2.OpenRecordset("BC_PIPPO")
 Set tempor3 = db2.OpenRecordset("tempor3")
 PIPPO.Index = "primarykey" <---- qui si ferma e con ?Err-description dice:
Operazione non supportata per questo tipo di oggetto.
Qui per me nero assoluto non so che fare...
Ciao Cesco 

 Qui per me nero assoluto non so che fare...
Si tratta del problema descritto nel articolo che ti ho segnalato.
Li trovi anche una soluzione.


 Access FAQ: 
www.donkarl.com/it
Mica capisco molto... stabilito che le tabelle sono collegate esternamente 
vedo che mi dice:
Puoi usare un recordset di tipo Dynaset e i metodi Find... per effettuare la 
ricerca (dbOpenDynaset, FindFirst, ecc).
Sono un po' incapace in queste cose, e non so come tradurre quella riga per 
usare il metodo Find.
Sto provando in vari modi ma non ne esco.
Grazie comunque del suggerimento...
Cesco 

 Sto provando in vari modi ma non ne esco.
Finora la riga che si potrebbe "tradurre" non l'hai rilevata.
Il codice postato � solo la prima parte di questo che si deve
cambiare e non si vede cosa sarebbe la ragione del codice.
Se non descrivi cosa vuoi fare il tuo codice e sopprattutto non
posta tutto il codice rilevante non posso aiutarti molto in pi� di
questo che dice l'articolo.
-- 
cu


 ha scritto nel messaggio 
news:7682ttF...@mid.individual.net...

Attraverso una maschera seleziono dalla scheda 45 alla 45 (dove questo 
numero � la primary key)
Questo dovrebbe poi stampare un report sulla stampante, ma si blocca in 
prossimit� di quella riga indicata:
Succede solo se uso le tabelle collegate, altrimenti funziona regolarmente.
ecco il codice completo:
Private Sub OK_Click()
 Dim M As Recordset, PADANIA As Recordset, db2 As Database
 Set db2 = DBEngine.Workspaces(0).Databases(0)
 'Set M = db2.OpenRecordset("MENU")
 Set PADANIA = db2.OpenRecordset("BC_PADANIA")
 Set tempor3 = db2.OpenRecordset("tempor3")
 PADANIA.Index = "primarykey" <<<-------------     qui si blocca
For I = [da scheda] To [a scheda]
 [n sch] = I
 If [tip] = 1 Then
    If [emit] = "PADANIA" Then
     Do Until PADANIA.NoMatch
       PADANIA.Seek "=", I
       If Not PADANIA.NoMatch Then
         GoTo trovato1PADANIA
    End If
     Loop
     GoTo fine
trovato1PADANIA:
     DoCmd.OpenReport "sk_B_PADANIA", A_PREWIEW
    End If
  ElseIf [tip] = 2 Then
     If [emit] = "PADANIA" Then
       Do Until PADANIA.NoMatch
       PADANIA.Seek "=", I
       If Not PADANIA.NoMatch Then
          GoTo trovato2PADANIA
     End If
     Loop
     GoTo fine
trovato2PADANIA:
       If PADANIA![B50] > 87.499 And PADANIA![B50] < 108.001 Then
        DoCmd.OpenReport "sk_c_PADANIA", A_NORMAL
       End If
  End If
  ElseIf [tip] = 3 Then
     If [emit] = "PADANIA" Then
       Do Until PADANIA.NoMatch
       PADANIA.Seek "=", I
       If Not PADANIA.NoMatch Then
          GoTo trovato3PADANIA
       End If
     Loop
     GoTo fine
trovato3PADANIA:
       If PADANIA![B50] > 87.499 And PADANIA![B50] < 108.001 Then
        DoCmd.OpenReport "sk_B1_PADANIA", A_NORMAL
       End If
    End If
  ElseIf [tip] = 4 Then
    If [emit] = "PADANIA" Then
       Do Until PADANIA.NoMatch
       PADANIA.Seek "=", I
       If Not PADANIA.NoMatch Then
          GoTo trovato4PADANIA
       End If
     Loop
     GoTo fine
trovato4PADANIA:
       If PADANIA![B50] > 87.499 And PADANIA![B50] < 108.001 Then
         tempor3.MoveFirst
         tempor3.Edit
         'tempor3.emit = PADANIA.[B36]
         tempor3!skd = PADANIA![B37]
         tempor3!sk1 = PADANIA![B37bis]
         tempor3!txloc = PADANIA![B38]
         tempor3!txcomune = PADANIA![B41]
         tempor3!txprov = PADANIA![B40]
         tempor3!txlat = PADANIA![B43]
         tempor3!txlon = PADANIA![B42]
         tempor3!txfreq = PADANIA![B50]
         tempor3!txpot = PADANIA![B55]
         tempor3!txerp = PADANIA![C92]
         tempor3!txang = PADANIA![C91]
         tempor3!txpcs = PADANIA![AL91A]
         tempor3!txalt = PADANIA![B44]
         tempor3.Update
         DoCmd.OpenReport "dia_pol", A_NORMAL
       End If
  End If
 End If
Next I
fine:
End Sub

 ...
Il tuo codice � abbastanza particolare, ma siccome scrivi che ha
funzionato prima e ora si vede che si tratta del solito problema con Seek,
puoi semplicemente provare il metodo descritto nel articolo. Cio�
sostituire la dicchiarazione di db2 e PADANIA con:
Dim db2 As DAO.Database
Dim PADANIA As DAO.Recordset
Set db2 = DBEngine.Workspaces(0).OpenDatabase("c:\Data\Backend.mdb")
Set PADANIA = db.OpenRecordset("BC_PADANIA", dbOpenTable)
Dove devi sostituire "c:\Data\Backend.mdb" col percorso e nome
del db dove adesso si trova fisicamente la tabella "BC_PADANIA".
-- 
HTH


 Set PADANIA = db.OpenRecordset("BC_PADANIA", dbOpenTable)
*Oops*, certo diventa:
Set PADANIA = db2.OpenRecordset("BC_PADANIA", dbOpenTable) 

 ha scritto nel messaggio 
news:76gnqcF...@mid.individual.net...

Perfetto Karl ora funziona,
Grazie infinite del tuo prezioso aiuto.
Ciao Cesco