Newsgroup: it.comp.appl.access
Titolo: Tabella collegata impostare identificatore univoco

Buongiorno, sto provando a collegare una tabella che si trova su server mysql ad access.
Il codice effettivamente funziona, la tabella viene correttamente collegata. Il problema è che quando eseguo il codice appare una finestra che mi chiede di scegliere, tra i vari campi disponibili, quale deve fungere da identificatore univoco. Sto provando a forzare tramite codice la chiave primaria ma non funziona. Incollo qui il codice, grazie mille! 
 
 
' Controlla se la tabella è già collegata
            Dim tdf As TableDef
            Dim isLinked As Boolean
            isLinked = False
 
            For Each tdf In CurrentDb.TableDefs
                If tdf.Connect <> "" Then ' Verifica se la tabella è collegata
                    If tdf.Name = strTableName Then ' Verifica se il nome della tabella coincide
                        isLinked = True
                        Exit For
                    End If
                End If
            Next tdf
 
            If Not isLinked Then ' Collega la tabella solo se non è già collegata
                DoCmd.TransferDatabase acLink, "ODBC Database", _
                    "ODBC;Driver={MySQL ODBC 8.0 Unicode Driver};Server=" & strServerName & _
                    ";Database=" & strDatabaseName & _
                    ";Uid=" & strUsername & _
                    ";Pwd=" & strPassword & ";", acTable, strTableName, strTableName
            End If
 
            ' Codice che dovrebbe impostare cognome come chiave primaria per evitare apertura finestra selezione
 
            Dim dbEngine As DAO.dbEngine
            Set dbEngine = New DAO.dbEngine
 
            Dim db As DAO.Database
            Set db = dbEngine.OpenDatabase(CurrentDb.Name)
 
            Dim tdfLinked As DAO.TableDef
            Set tdfLinked = db.TableDefs(strTableName)
 
            Dim idx As DAO.Index
            Set idx = tdfLinked.CreateIndex("PrimaryKeyIndex")
 
            Dim fld As DAO.Field
            Set fld = idx.CreateField("Cognome", dbText, 255)
            idx.Fields.Append fld
 
            idx.Primary = True
            tdfLinked.Indexes.Append idx
 
            Set fld = Nothing
            Set idx = Nothing
            Set tdfLinked = Nothing
            Set db = Nothing
            Set dbEngine = Nothing

 
 
 
Sulla tabella incriminata, mettici un campo che funga da indice 
primario,  e la ricolleghi in modo da farla vedere ad Access con la 
modifica eseguita
 
 

Effettivamente ha funzionato, grazie mille



Daje, sotto, bisogna scrivere sotto..
 
Ma dimmi una cosa Valentino Chiarello e Mauro Chiarello sono la stessa 
persona, che spedisce con due email diverse o sono due persone distinte?
Chiedo perche' stranamente appena apparso uno e' subito apparso anche 
l'altro e quindi la seconda ipotesi (due persone diverse) perde punti 
rispetto alla prima (unica persona)


Si hai ragione dovrei scrivere sotto, colpa mia nemmeno ci faccio caso. Comunque Mauro è mio padre, abbiamo iniziato a scrivere entrambi perchè stiamo lavorando a un programma da dare in mano alla rete vendita!


Il Vecchio e il Nuovo, sto introducendo mio figlio al VBA (con quello che mi ricordo), mi siete tornati in mente, ma ancora non mi entra in testa di rispondere in fondo e non a inizio messaggio! Ovviamente ognuno di noi segue una parte di sviluppo e si attiva direttamente nel gruppo ;-)

 Il Vecchio e il Nuovo, sto introducendo mio figlio al VBA (con quello che mi ricordo), 
 
Dai, questa cosa è stupenda!   ;-)
Però resta un mistero l'ambiente di Design scelto: cinque minuti prima parrebbe Access, cinque minuti dopo 
VB.NET
 
 
Saluti
 


Guarda, semplicemente perché dovendo fare uno sviluppo "tampone" e avendo avuto problemi con un altro sviluppo per via degli ambienti 32 o 64 bit... dopo un'iniziale incertezza, ho preso la decisione. Bella o brutta che sia, dovevo presentare questo prodotto velocemente, abbiamo (ha) perso qualche ora per prendere dimestichezza con l'ambiente ma ora sta viaggiando come un falchetto... a parte un problema, magari stupido, con l'invio mail che non gli riesce di far funzionare!
 
Dopo le ferie inseriremo una persona dedicata in azienda e prenderà in mano i vari applicativi per creare, ex novo, una soluzione web based completa e sicuramente molto più professionale, ma come dicevo, necessitavo ora di soluzioni tampone rapide!
 
P.S. e poi veder crescere con questo linguaggio mio figlio, sinceramente, mi apre il cuore!!!

 a parte un problema, magari stupido, con l'invio mail che non gli riesce di far funzionare!
 
strano
è una banalità con le librerie gia pronte di 
vb.net
 per l'invio delle mail
 
posti il codice che da errore?
 
BFS
 
 


Nel frattempo ho risolto, non so come mai, ma la porta 465 di Aruba non faceva andare il codice, abbiamo messo la porta 587 (della quale non avevamo trovato traccia su Aruba) e la mail parte regolarmente. Per ora il codice super semplificato per fare il test che abbiamo usato è questo:
 
Public Sub InviaMail()
        Dim oggetto As String = "MAIL TEST DA PROCEDURA MAURO"
        Dim contenuto As String = txt_testomail.Text
 
        Dim indirizzoMittente As String = "licenze@###
group.it
"
        Dim passwordMittente As String = "32o64bitquestoilveroproblema"
 
        Dim indirizzoDestinatario As String = "m##ro.#####
el...@gmail.com
"
 
        Dim messaggio As New MailMessage(indirizzoMittente, indirizzoDestinatario, oggetto, contenuto)
 
        Dim client As New SmtpClient("
smtps.aruba.it
", 587)
        client.EnableSsl = True
        client.Credentials = New NetworkCredential(indirizzoMittente, passwordMittente)
 
        Try
            client.Send(messaggio)
            MessageBox.Show("Email inviata correttamente.")
        Catch ex As Exception
            MessageBox.Show("Si è verificato un errore durante l'invio dell'email: " + ex.Message)
        End Try
    End Sub