Si vols traduir les discussions al català prem:

Fitxer de punts dinàmic llegint de XLS

Funcionament del MiraMon Professional i del Lector Universal de Mapes del MiraMon.
Respon
alaitz
Entrades: 2
Membre des de: dc., 08 juny 2011, 16:44

Fitxer de punts dinàmic llegint de XLS

Entrada Autor: alaitz » dv., 10 juny 2011, 17:56

Hola,

Tinc un fitxer XLS que vull usar per a crear una capa de punts. Com l'XLS es va actualitzant, no vull crear un PNT en un moment donat, i per tant no em serveix "Eines | Manteninment de Fitxers | Obtenir punts des de taula DBF, Access, etc".

He creat un DSN d'arxiu amb les eines de Windows ("Panel de control | Herramientas administrativas | Origenes de datos (ODBC)") i intento fer "Fitxer | Obrir punts en taula o capa en base de dades espacial" però em dóna el següent error:
42S02 -> [Microsoft][Controlador ODBC Excel] El motor de base de datos Microsoft Jet no pudo encontrar el objeto 'Base de datos'. Asegúrese de que el objeto existe, y que ha escrito el nombre y la ruta de acceso al objeto correctamente.
Algú sap com puc solucionar això? Us poso el contingut del DSN (a sota de tot) per si enteneu què pot estar passant.

Gràcies,

Alaitz

-----------------
[ODBC]
DRIVER=Microsoft Excel Driver (*.xls)
UID=admin
UserCommitSync=Yes
Threads=3
SafeTransactions=0
ReadOnly=0
PageTimeout=5
MaxScanRows=8
MaxBufferSize=2048
FIL=excel 8.0
DriverId=790
DefaultDir=c:\docs\Escriptori\punts_dinamics
DBQ=c:\docs\Escriptori\punts_dinamics\estacions.xls

CristinaDomingo
Entrades: 6
Membre des de: dc., 08 juny 2011, 17:07

Re: Fitxer de punts dinàmic llegint de XLS

Entrada Autor: CristinaDomingo » dv., 10 juny 2011, 18:13

Hola Alaitz,

Jo també m'he trobat amb aquest problema. No he trobat la solució de l'error però si una alternativa.

Es crea un MDB de l'Access on es fa un vincle amb el teu XLS. No fas una importació perquè així cada vegada que modifiquis l'XLS també ho farà el MDB i conseqüentment la capa de punts.

Demanes d'obrir el vector des del menú Fitxer | Extracció de capes d'una taula d'una Base de Dades. En el fitxer origen selecciones el teu MDB. Si no veus la taula vinculada, li has de demanar una Consulta SQL :

SELECT * FROM NomTaula

Acabes d'omplir les dades que et demana ( Sistema de referència, camp de les coordenades...) i acceptes. El vector de punts el pots guardar com un .MMM.

Cada cop que modifiquis l'XLS i obris el MMM apareixaran els canvis nous.

De totes maneres, esperem a veure si algun dels moderadors ens pot donar la resposta al problema, ja que no a tots els usuaris de MM els pot semblar fàcil fer aquest "pont".

Salut,

Cristina

XavierPons
Entrades: 10
Membre des de: dj., 02 juny 2011, 10:02

Re: Fitxer de punts dinàmic llegint de XLS

Entrada Autor: XavierPons » ds., 11 juny 2011, 11:58

Hola,

Jo ho he provat i em funciona correctament. Repassem els passos necessaris:

1/ Definició de la taula dintre del full de càlcul. És necessari que dintre l'XLS defineixes una regió rectangular que sigui la taula que vols que reconegui el driver ODBC. En essència: 1.1 Selecciona la zona, incloent els noms de camps. 1.2 En Excel 2003 vés a "Inserir | Nom | Definir" i escriu el nom de la taula que vols crear; en Excel 2007 i posteriors fes botó dret amb el ratolí i selecciona "Assigna un nom a un rang". Si tot ha anat bé, quan selecciones amb el ratolí la zona, a dalt a l'esquerra apareix el nom de la taula i una fletxeta amb un desplegable (si t'interessa, pots definir més d'una taula en un mateix XLS, i aleshores en obrir l'XLS des del MiraDades, o des d'una connexió DSN, et deixarà triar quina vols usar). Si ara deses l'XLS veuràs que per exemple el MiraDades pot obrir-lo directament (et preguntarà quina de les taules definides a l'XLS vols obrir).

2/ Creació del DSN. De del "Tauler de control" del Windows, vas a "Eines administratives i Fonts de dades (ODBC)", tal i com deies. Aquí selecciones la pestanya DSN de fitxer (!!) (no de sistema ni d'usuari). Des del botó "Agregar" tries el driver Microsoft per a Excel XLS. En la següent caixa prems el botó "Examinar" i navegues al directori on voldràs DESAR el DSN (típicament el mateix on és l'XLS) i escrius el nom del nou DSN que crearàs; prems "Següent" per anar a la següent caixa, que és merament informativa; prems "Finalitzar". En la nova caixa que apareix, prems el botó "Seleccionar llibre..." i explores fins a l'XLS desitjat. Prems "Acceptar" i el fitxer DSN ja s'ha creat (pots comprovar-ho amb l'explorador de fitxers). Ara ja pots tancar la caixa d'administració de fonts de dades ODBC.

3/ (opcional) Definir adreces relatives. El Windows no genera els fitxers DSN amb adreces relatives, però les suporta si les troba escrites. Així doncs, si t'interessa gaudir de la flexibilitat de les adreces relatives cal que editis el DSN amb el bloc de notes i converteixis les adreces absolutes en relatives. Per exemple en les claus on diu:
DefaultDir=E:\taller\odbc\AccedirXLS
DBQ=E:\taller\odbc\AccedirXLS\ExempleTaulaEnXLS_AmbCoordenades.xls
hi escrius:
DefaultDir=.
DBQ=ExempleTaulaEnXLS_AmbCoordenades.xls

T'incloc un ZIP amb un petit exemple.

Els drivers per a XLS presenten algunes "imperfeccions" com que consideren que un decimal 0 al final d'un nombre real no s'ha de mostrar (com fa l'Excel per defecte si no li defineixes el nombre de decimals), i retornar un camp de nombres enters (amb 0 decimals definits a l'Excel) com si fossin reals (amb decimals 0) però funciona raonablement bé.

Una altra solució és que et plantegis si pots efectuar els canvis directament a una DBF o a un MDB, que són d'enllaç directe en el MiraMon i, a més, en ser formats de taules i bades de dades, sempre presenten menys problemàtiques potencials que els XLS via DSN.

Finalment, recorda que pots activar un refresc periòdic d'una capa des de "Visualització | Refresc periòdic de capes". Això funciona tant si les teves taules són en DBF, MDB o altres bases de dades, taules o fulls de càlcul accedides via DSN i permet que dinàmicament, cada cert temps, refresqui l'aspecte de la capa (la simbolització canvia coherentment).
Fitxers adjunts
ExempleTaulaEnXLS_AmbCoordenades.zip
(2.24 KiB) S’ha baixat 135 vegades
miramon l’ha editat per darrera vegada el dia: dl., 05 maig 2014, 12:32, en total s’ha editat 1 vegada.
Raó: Actualització a Excel 2007
Xavier

alaitz
Entrades: 2
Membre des de: dc., 08 juny 2011, 16:44

Re: Fitxer de punts dinàmic llegint de XLS

Entrada Autor: alaitz » dt., 14 juny 2011, 12:46

Gràcies Cristina i Xavier!

Edu Luque
Entrades: 118
Membre des de: dc., 15 juny 2011, 17:10

Re: Fitxer de punts dinàmic llegint de XLS

Entrada Autor: Edu Luque » dj., 16 juny 2011, 10:46

“Trucs” pel que fa al missatge del Xavier

1/ Selecciones el rang d’interès, la primera fila ha de contenir el noms dels camps i des del quadre de noms (al costat d’inserir funció) li poses el nom que voldràs per la taula.

Recordeu que el quadre de noms de l’Excel serveix per assignar un àlies a una o diverses cel·les seleccionades, per exemple si a H6 tens un total, la pots anomenar “Total” i en altres llocs del llibre utilitzar aquest àlies (=Total)

Desar i tancar el llibre d’Excel.

3/ El fitxer DSN, fins que no tornes a canviar d’Office, el generes una vegada i el deses en una carpeta amb material d’interès. Quan et calgui un altre connexió el copies en el directori de l’Excel o de treball, l’edites amb el bloc de notes tal i com diu Xavier i prest.

Pel que fa al refresc periòdic, és una possibilitat, però també pots crear un BAT amb el BDPNT actualitzant la capa PNT des de l’Excel a partir d’una tasca programada (cada vegada que s’inicia la sessió, un cop al dia, a les 2:00 de la matinada, etc). En tenir un BAT pots copiar/moure fitxers MMM i REL existents amb la visualització correcta i enllaços a altres taules ja definits.

sguma
Entrades: 26
Membre des de: dj., 09 juny 2011, 13:20

Re: Fitxer de punts dinàmic llegint de XLS

Entrada Autor: sguma » dc., 13 jul. 2011, 14:58

Afegeixo un "M'agrada" a la solució de la Cristina Domingo: haver de definir dins de l'Excel l'àrea que ha de fer de taula implica que has de tenir en compte si creix l'excel en nombre de files: pot passar que hi hagi files que no llegeixis en el MiraMon ja que queda fora del rang definit.
Per altra banda, el MiraMon sap llegir directament els mdb. En el fons és el mateix tenir un dsn per obrir el Excel que un mdb. Necessites un fitxer intermig. I per últim, compte amb els drivers ODBC de Windows7!!

Afegir que si feu servir dsn per accedir al fitxer (sobretot mdb) modifiqueu el ReadOnly per 1: ReadOnly=1. D'aquesta manera eviteu bloquejar fitxers (en el cas que més d'una persona treballi amb la taula).

Salut!

Sergi Gumà

Respon