Ragazzi ho il seguente problema devo realizzare un programma che prenda dei nominativi da un db mysql e li ricopi in maniera selettiva(ad es. a partire da una data), cancellando eventuali duplicati, cioè nomi già presenti ma con info meno aggiornate, in un db acces, credo sia 97.

questo è il codice che ho realizzato
codice:
Private Sub Praticanti_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Praticanti.Click
        '*******parte relativa al db DBF
        Dim strSQL As String = "SELECT * FROM Registro"
        Dim strsql2 As String
        'apre la connessione al dbf ed esegue la query
        DB = DBE.OpenDatabase(path, False, False, "dBase IV;")
        RS = DB.OpenRecordset(strSQL, dao.RecordsetTypeEnum.dbOpenDynaset)
        '*******fine************************
        Dim data_selezione, data_rilascio As Date
        Dim rilascio As String
        Dim percent, index As Integer
        percent = 0
        index = 0
        data_selezione = CDate(MaskedTextBox1.Text)
        '********apertura e gestione della connessione al MYSQL
        'select Cognome,nome,luogonascita,Datanascita,Indirizzo,Citta,Prov,Iscrizione_praticanti,Abilitazione_patrocinio,Iscrizione_Avvocati,Iscrizione_cassazione,DataTessera,data_ultima_mod from arc_completo where  tipo_iscritto='A' and(Iscrizione_praticanti is not null or Abilitazione_patrocinio is not null) and (Iscrizione_praticanti > '" & data_selezione.Year & "-" & data_selezione.Month & "-" & data_selezione.Day & "' or Abilitazione_patrocinio > '" & data_selezione.Year & "-" & data_selezione.Month & "-" & data_selezione.Day & "' or data_ultima_mod > '" & data_selezione.Year & "-" & data_selezione.Month & "-" & data_selezione.Day & "') and (Iscrizione_Avvocati is null)
        sql_mysql = "select Cognome,nome,luogonascita,Datanascita,Indirizzo,Citta,Prov,Iscrizione_praticanti,Abilitazione_patrocinio,Iscrizione_Avvocati,Iscrizione_cassazione,DataTessera,data_ultima_mod from arc_completo where  tipo_iscritto='A' and(Iscrizione_praticanti is not null or Abilitazione_patrocinio is not null) and (Iscrizione_praticanti > '" & data_selezione.Year & "-" & data_selezione.Month & "-" & data_selezione.Day & "' or Abilitazione_patrocinio > '" & data_selezione.Year & "-" & data_selezione.Month & "-" & data_selezione.Day & "' or data_ultima_mod > '" & data_selezione.Year & "-" & data_selezione.Month & "-" & data_selezione.Day & "') and (Iscrizione_Avvocati is null)"
        obj_c_mysql.open_connection()
        rs_mysql = obj_c_mysql.esegui_query(sql_mysql, 1, 3)
        '******** fine del MYSQL***********
        '***********dati di presentazione interfaccia grafica
        Dim value As Integer
        Dim data_appoggio As Date
        Dim giorno As String
        Dim mese As String
        Dim nome, cognome, luogonascita As String



        '*******fine presentazione interfaccia grafica
        While rs_mysql.EOF = False
            value = value + 1
            rs_mysql.MoveNext()
        End While
        rs_mysql.MoveFirst()

        While rs_mysql.EOF = False
            If rs_mysql("Datanascita").Value IsNot DBNull.Value Then

                data_appoggio = (rs_mysql("Datanascita").Value)
                If data_appoggio.Day.ToString.Length = 2 Then
                    giorno = data_appoggio.Day.ToString
                Else
                    giorno = "0" & data_appoggio.Day.ToString
                End If
                If data_appoggio.Month.ToString.Length = 2 Then
                    mese = data_appoggio.Month.ToString
                Else
                    mese = "0" & data_appoggio.Month.ToString
                End If
            End If
            cognome = rs_mysql("cognome").Value.ToString.Replace("'", "''")
            nome = rs_mysql("nome").Value.ToString.Replace("'", "''")
            luogonascita = rs_mysql("luogonascita").ToString.Replace("'", "''")
            strsql2 = "SELECT Registro.COGNOME, Registro.NOME, Registro.DATANASCIT, Registro.LUOGONASCI FROM(Registro)WHERE (((Registro.COGNOME)='" & cognome & "') AND ((Registro.NOME)='" & nome & "') AND ((Registro.DATANASCIT)='" & giorno & "/" & mese & "/" & data_appoggio.Year.ToString.Remove(0, 2) & "') AND ((Registro.LUOGONASCI)='" & luogonascita & "'));"
            RS2 = DB.OpenRecordset(strsql2, dao.RecordsetTypeEnum.dbOpenDynaset)

            While RS2.EOF = False
                RS2.Delete()
                RS2.MoveNext()
            End While

            rs_mysql.MoveNext()

        End While
        RS2.Close()
        rs_mysql.MoveFirst()
        Label1.Text = "Numero di record esportati:" & value.ToString

        While rs_mysql.EOF = False

            RS.AddNew()
            Try
                If rs_mysql("cognome").Value IsNot DBNull.Value Then
                    RS("cognome").Value = rs_mysql("cognome").Value
                Else
                    RS("cognome").Value = ""
                End If

            Catch ex As System.Runtime.InteropServices.COMException
                MsgBox("invalid operation sul campo cognome")

            End Try
            Try
                If rs_mysql("nome").Value IsNot DBNull.Value Then
                    RS("nome").Value = rs_mysql("nome").Value
                Else
                    RS("nome").Value = ""
                End If


            Catch ex As System.Runtime.InteropServices.COMException
                MsgBox("invalid operation sul campo nome")
            End Try
            Try
                If rs_mysql("Datanascita").Value IsNot DBNull.Value Then

                    data_appoggio = (rs_mysql("Datanascita").Value)
                    If data_appoggio.Day.ToString.Length = 2 Then
                        giorno = data_appoggio.Day.ToString
                    Else
                        giorno = "0" & data_appoggio.Day.ToString
                    End If
                    If data_appoggio.Month.ToString.Length = 2 Then
                        mese = data_appoggio.Month.ToString
                    Else
                        mese = "0" & data_appoggio.Month.ToString
                    End If
                    RS("datanascit").Value = giorno & "/" & mese & "/" & data_appoggio.Year.ToString.Remove(0, 2)
                Else
                    RS("datanascit").Value = ""
                End If

            Catch ex As System.Runtime.InteropServices.COMException
                MsgBox("invalid operation sul campo Datanascita")
            End Try
            Try
                If rs_mysql("luogonascita").Value IsNot DBNull.Value Then

                    RS("luogonasci").Value = rs_mysql("luogonascita").Value
                Else
                    RS("luogonascit").Value = ""
                End If


            Catch ex As System.Runtime.InteropServices.COMException
                MsgBox("invalid operation sul campo luogo nascita")
            End Try
            Try
                If rs_mysql("Indirizzo").Value IsNot DBNull.Value Then
                    RS("indirizzo").Value = rs_mysql("Indirizzo").Value
                Else
                    RS("indirizzo").Value = ""
                End If


            Catch ex As System.Runtime.InteropServices.COMException
                MsgBox("invalid operation sul campo Indirizzo")
            End Try
            Try
                If rs_mysql("Citta").Value IsNot DBNull.Value Then
                    RS("citta").Value = rs_mysql("Citta").Value
                Else
                    RS("citta").Value = ""
                End If


            Catch ex As System.Runtime.InteropServices.COMException
                MsgBox("invalid operation sul campo  Citta")
            End Try
            Try
                If rs_mysql("Iscrizione_praticanti").Value IsNot DBNull.Value Then
                    data_appoggio = (rs_mysql("Iscrizione_praticanti").Value)
                    If data_appoggio.Day.ToString.Length = 2 Then
                        giorno = data_appoggio.Day.ToString
                    Else
                        giorno = "0" & data_appoggio.Day.ToString
                    End If
                    If data_appoggio.Month.ToString.Length = 2 Then
                        mese = data_appoggio.Month.ToString
                    Else
                        mese = "0" & data_appoggio.Month.ToString
                    End If
                    RS("praticanti").Value = giorno & "/" & mese & "/" & data_appoggio.Year.ToString.Remove(0, 2)
                Else
                    RS("praticanti").Value = ""
                End If
            Catch ex As System.Runtime.InteropServices.COMException
                MsgBox("invalid operation sul campo  Iscrizione_praticanti")
            End Try
            Try
                If rs_mysql("Abilitazione_patrocinio").Value IsNot DBNull.Value Then
                    data_appoggio = (rs_mysql("Abilitazione_patrocinio").Value)
                    If data_appoggio.Day.ToString.Length = 2 Then
                        giorno = data_appoggio.Day.ToString
                    Else
                        giorno = "0" & data_appoggio.Day.ToString
                    End If
                    If data_appoggio.Month.ToString.Length = 2 Then
                        mese = data_appoggio.Month.ToString
                    Else
                        mese = "0" & data_appoggio.Month.ToString
                    End If
                    RS("patrocinio").Value = giorno & "/" & mese & "/" & data_appoggio.Year.ToString.Remove(0, 2)
                Else
                    RS("patrocinio").Value = ""
                End If
            Catch ex As System.Runtime.InteropServices.COMException
                MsgBox("invalid operation sul campo  Abilitazione_patrocinio")
            End Try
            Try
                data_rilascio = data_appoggio.AddDays(1)
                If data_rilascio.Day.ToString.Length = 2 Then
                    giorno = data_rilascio.Day.ToString
                Else
                    giorno = "0" & data_rilascio.Day.ToString
                End If
                If data_rilascio.Month.ToString.Length = 2 Then
                    mese = data_rilascio.Month.ToString
                Else
                    mese = "0" & data_rilascio.Month.ToString
                End If
                rilascio = giorno & "/" & mese & "/" & (data_rilascio.Year.ToString)
                RS("rilascio").Value = rilascio
            Catch ex As System.Runtime.InteropServices.COMException
                MsgBox("invalid operation sulla modifica della data")
            End Try
            'Try
            '    RS("prog1").Value = DBNull.Value
            '    RS("magneti1").Value = DBNull.Value
            '    RS("foto1").Value = DBNull.Value
            'Catch ex As System.Runtime.InteropServices.COMException
            '    MsgBox("errore sull'importazione degli ultimi tre campi")
            'End Try
            'RS("indirizzo").Value =  

            RS.Update()
            rs_mysql.MoveNext()
            index = index + 1
            percent = ((index / value) * 100)
            ProgressBar1.Value = percent
        End While
        MsgBox("esportazione completata  con successo!!!", MsgBoxStyle.Information)


    End Sub
il programma funziona e fa il suo lavoro finché i nominativi sono dell'ordine di 100,150...come appena si supera tale limite va in blocco e dal sito della microsoft ho capito che il blocco è dovuto ai driver che non ce la fanno a gestire tabelle di questa dimensione.




Voi vi chiederete perché usi Access 97? perché una serie di programmi dei quali non ho accesso al codice hanno impostato questo db per funzionare.