Modifica tipo dati tabella Access 2000

di
Anonimizzato15312
il
13 risposte

Modifica tipo dati tabella Access 2000

Buongiorno a tutti,
avrei bisogno tramite una macro/comando di modificare in automatico il tipo dati di una colonna di una tabella.
Al momento il tipo dati è testo (255), deve diventare un collegamento ipertestuale.

Attendo notizie/aiuti

Grazie

13 Risposte

  • Re: Modifica tipo dati tabella Access 2000

    Prima di rispondere alla lettera alla tua domanda...2 domande:
    A) Per quale motivo vuoi fare ciò?
    B) Vuoi che questo passaggio venga fatto una volta per tutte, oppure vuoi davvero una macro o codice VBA che faccia esattamente ciò che hai richiesto? Se sì in quest'ultimo caso, da dove deve partire la sollecitazione del cambio di tipo dati?

    Se ci dai qualche nome di tabella, campo, forse ci semplifichi qualcosa.
  • Re: Modifica tipo dati tabella Access 2000

    Spiego brevemente...ho una serie di tabelle (centinaia) tutte contenenti una lista di url, al momento la caratteristica del campo è testo, posso modificarla manualmente in collegamento ipertestuale, ma vorrei un comando che me lo fa in automatico.
    Ho generato una macro che mi esporta tutte le tabelle in file html, ma l'url non è "attivo", se copio e incollo il testo il una nuova pagina browser invece funziona.

    Ricapitolando, mi servirebbe un comando per cambiare le caratteristiche del campo da testo a collegamento ipertestuale e un comando che mi permetta di esportare la tabella mantenendo l'url "attivo".

    Grazie
  • Re: Modifica tipo dati tabella Access 2000

    Non vedo il motivo di avere centinaia di tabelle che (immagino) dicono tutte le stesse cose, eventualmente a meno di una sola discriminante (logica). Se davvero stanno così le cose, ti consiglio di unificare tutto in un'unica tabella e aggiungere un campo che contraddistingue. Poi effettuerai il cambio di tipo dati in un colpo solo.
    Se ho errato nell'interpretazione, spiega tutto più dettagliatamente.
  • Re: Modifica tipo dati tabella Access 2000

    L'opzione che hai espresso l'avevo gia' presa in considerazione come ultima evenizenza.
    Sono tabelle contenenti url di immagini da scaricare con DownthemAll, ho notato che questo programma ogni tanto si blocca quando scarica liste di 10mila immagini, per cui ho la necessita' di creare tabelle piu' leggere.
    Ho letto di un codice Alter Table/Alter Column, ma non riesco a capire dove/come scriverlo e se funziona su Access 2003
  • Re: Modifica tipo dati tabella Access 2000

    Segnalo:
    "http://forum.masterdrive.it/access-79/modifica-tipo-dati-tabella-access-2000-a-84944/"
  • Re: Modifica tipo dati tabella Access 2000

    Per me il problema che sollevi non c'entra nulla con la logica strutturale di Access. Per come la vedo io tu dovresti avere una sola tabella (in verità non ci hai mai detto tutti i campi e non possiamo sapere se hai strutturato correttamente...questo potrebbe essere un altro problema). Dalla sola tabella puoi produrre infinite query che ti spezzettano/filtrano i record che ti interessano. Da queste query (argomentali) puoi decidere di esportare in html facilmente, anche usando una macro...
    Fai attenzione al crossposting, l'ho notato anch'io. Leggi attentamente i regolamenti di tutti i forum dove ti sei iscritto. Da parte mia (salvo diverse decisioni degli amministratori) si potrebbe continuare almeno qui, visto che la discussione ha già avuto un suo sviluppo.
  • Re: Modifica tipo dati tabella Access 2000

    Chiedo scusa per la violazione del regolamento, accetto decisioni.

    Nel frattempo continuo a scrivere qui...

    Allora, ipotizziamo di voler unire tutte le tabelle in un'unica tabella (che avrà circa 3milioni di record...), come posso creare un comando che accoda tutte le tabelle senza doverlo fare manualmente (considera che al momento ho circa 600tabelle)?
  • Re: Modifica tipo dati tabella Access 2000

    Qua bisogna mettere mano necessariamente a un codice VBA. Non sono in grado di darti una risposta tecnica, l'intervento di un utente più esperto sarebbe opportuno. Dico quel poco che so a livello teorico. Credo che in VBA sia possibile creare una numerabilità delle tabelle (qualcosa come TableDefs(numero)...potrei dire una cavolata...). Attraverso un For...Next potresti ciclare ripetutamente l'esecuzione di una query di accodamento che prenda le tabelle una ad una.
    Non so se ti torna utile questo
  • Re: Modifica tipo dati tabella Access 2000

    Le tabelle sono già "numerate"...si chiamano INDIRIZZO1, INDIRIZZO2, INDIRIZZO3...INDIRIZZO600
    Non so però come scrivere il ciclo For...next
  • Re: Modifica tipo dati tabella Access 2000

    Non credo che ti faciliti più di tanto l'operazione, se non il fatto di essere certo che gli accodamenti avverranno ordinatamente (avresti dovuto chiamarli però INDIRIZZO001, INDIRIZZO002...INDIRIZZO600). TableDefs(numero) lavora indipendentemente da questo aspetto.
    Non so: si potrebbe tentare un'altra operazione disperata. So che Access offre uno strumento Analizzatore di tutto il database. Quando trova qualcosa che non gli piace secondo le sue regole di normalizzazione, nei limiti del suo possibile, suggerisce le opportune operaziondi da fare. Alcune le eseguirebbe addirittura automaticamente. Prova un po' questa strada: ti consiglio di fare una copia del database, per provare, non si sa mai ti crea tutt'altro da quello che avevi previsto.
  • Re: Modifica tipo dati tabella Access 2000

    Il fatto che li accodi non in ordine non mi crea assolutamente nessun problema.

    Rimane il fatto che la via più semplice sia di scrivere un comando (ALTER TABLE/ALTER COLUMN) che in automatico mi cambia le caratteristiche del campo...ma non so come scriverlo...
  • Re: Modifica tipo dati tabella Access 2000

    fromthereal ha scritto:


    il fatto che li accodi non in ordine non mi crea assolutamente nessun problema.

    Rimane il fatto che la via più semplice sia di scrivere un comando (ALTER TABLE/ALTER COLUMN) che in automatico mi cambia le caratteristiche del campo...ma non so come scriverlo...
    No, non è sufficiente usare ALTER TABLE/ALTER COLUMN perché questi sono comandi DML standard invece l'attributo Hyperlink è specifico di Access.
    Il tipo di campo è, di per sé, un semplice campo Memo ma con in più l'attributo:

    Jet OLEDB:Hyperlink settato a True

    A mio avviso fai prima a crearti una nuova tabella che abbia gli stessi campi, stessi nomi delle tabelle che contengono dati, ma impostando già il nuovo campo sul tipo Collegamento ipertestuale, poi ti importi i record dalle altre tabelle con una query:
    
    INSERT INTO NuovaTabella SELECT * FROM VecchiaTabella
    
    Se devi eseguire un ciclo su più tabelle, come mi par di aver capito, allora devi mettere mano a codice VBA in un modulo BAS, qualcosa del genere:
    
    Dim i As Integer
    For i = 1 to <n> 
       "INSERT INTO INDIRIZZI SELECT * FROM  INDIRIZZO " & Format(i, "000")
    Next i
    
    dove <n> è il numero di tabelle di nome INDIRIZZOxxx

    Oppure usi l'oggetto TableDef (mi pare che in Access si chiami così).
    Io preferisco la prima soluzione
  • Re: Modifica tipo dati tabella Access 2000

    Ho tentato anche il passaggio di creare una tabella con il campo collegamento ipertestuale, importare i dati da un'altra tabello...non capisco però perchè quando esporto il file html non risultano url "attivi", nel senso che cliccando sul link non visualizzo l'immagine, se invece faccio copia incolla in un'altra finestra me la visualizza.

    Se invece cambio le proprietà del campo della tabella da testo a collegamento ipertestuale, l'esportazione del file html è ok.
Devi accedere o registrarti per scrivere nel forum
13 risposte