Salut,
J'ai créé un sqlquery.jmp à partir d'un fichier Excel (xlsm).
Lorsque j'exécute pour la première fois : pas de pb. le fichier jmp est créé.
mais lorsque j'essaie de mettre à jour le fichier jmp par "mise à jour depuis la base de données" (j'utilise JMP14), le fichier n'est pas mis à jour.
Le fichier excel est protégé en écriture. Sous excel, le fichier demande un mot de passe pour l'écriture/lecture. Je ne peux l'ouvrir qu'en lecture seule.
est-ce l'explication ?
Que dois-je vérifier ?
Merci de votre aide.
Cordialement
Il s'agit d'une mise à jour tardive. La raison de l'invite est que la mise à jour à partir de la base de données() a besoin à la fois de la chaîne de connexion et de la requête.
Ceci est juste un FYI, pour corriger le problème d'incitation dans mon dernier message pour cette discussion.
Names Default to Here(1);
//---create a string with multiple commands
xls_connect_str = "DSN=Excel Files;
DBQ=Basketball Football Sample Data.xlsx;
DefaultDir=c:\temp\;pwd=1234";
//--select some fields/parameters/columns
//--Football is one of the worksheet names
//--each worksheet is treated as a database table
football_dt1=Open Database( xls_connect_str,
"SELECT * FROM `Football$` ",
"Football");
//--- Run to Here and look at results
nr= nrow(football_dt1);
football_dt1 << delete rows((nr-10)::nr);
football_dt1 << Update from Database(xls_connect_str , "SELECT * FROM `Football$` ");
Françoise,
Ci-joint un classeur Excel (.xlsx), avec 3 feuilles, Basketball, Football et une Feuille 3 vide. Le basket-ball et le football sont protégés par le mot de passe 1234. Exécutez les lignes 1-13 (//Run to Here... ) du script intégré, puis ouvrez et modifiez ou ajoutez quelque chose à la feuille de fichier Excel Football, puis exécutez la ligne 15, la dernière instruction JSL.Cela fonctionne, mais je reçois une invite pour quelle feuille. Si je sélectionne Football, mon tableau JMP est mis à jour.
Il est probable qu'il existe une syntaxe pour spécifier quelle feuille de calcul dans la chaîne de connexion, mais je ne la connais pas. Si vous n'avez qu'une seule feuille, cela devrait fonctionner. Remarque J'utilise Excel comme base de données et n'utilise pas Open (ou Import Excel).
JMP 13 disposait d'une documentation indiquant que les mots de passe pris en charge par Ouvrir/Importer pour
"Importer des fichiers Excel 2007 .xls protégés par mot de passe en incluant l'argument Mot de passe"
Cependant, lors de l'écriture de notre livre (écrit avec JMP13) début janvier 2017, nous avons signalé que cela ne fonctionnait pas. Il n'y a pas de message de prise en charge dans la documentation de JMP 14.
Notez que mon nom système (DSN=Fichiers Excel) n'est peut-être pas le nom que vous avez configuré et que vous devez modifier le chemin pour qu'il corresponde à l'emplacement où vous avez enregistré ce fichier. Espérons qu'une personne ou un gourou JMP qui a rencontré ce problème pourra vous aider à résoudre le problème de la spécification de la feuille dans la chaîne de connexion.
//---create a string with multiple commands
xls_connect_str = "DSN=Excel Files;
DBQ=Basketball Football Sample Data.xlsx;
DefaultDir=c:\temp\;pwd=1234";
//--select some fields/parameters/columns
//--Football is one of the worksheet names
//--each worksheet is treated as a database table
football_dt1=Open Database( xls_connect_str,
"SELECT * FROM `Football$`",
"Football");
//--- Run to Here and look at results
football_dt1 << Update from Database(xls_connect_str);