Manglende data ved overførsel fra Calc til Base - OO 3.2

Brugerhjælp og support til databaser i LibreOffice Base

Moderator: Lodahl

Post Reply
ingedorthe
Posts: 4
Joined: 19. Jun 2010 11:21
Location: Vejle
Contact:

Manglende data ved overførsel fra Calc til Base - OO 3.2

Post by ingedorthe »

Hej
Jeg bruger Writer til at udskrive adresse-labels. Kundedata hentes på min hjemmeside ved et træk i Excel - d.v.s. at jeg får dem ned i .calc - gemmer dem i et eksisterende regneark. Dette bruges til at flette adresselabels.
Problemet er, at datofelter og postnummer ikke kommer med i den skrivebeskyttede tabel, som base opretter. Jeg kan læse mig frem til, at base identificerer formaterne ud fra 2. række - så jeg har omhyggeligt sørget for at den havde de rigtige formater. Jeg har også sørget for at fjerne alle de gamle baser fra samme data. Alligevel findes problemet.
Hvis jeg går ind i tabeldesign står de med forkerte formater - men der kan jeg ikke rette??
Jeg har netop opdateret til 3.2. Tidligere var det kun de engelske (tekst)-postnumre, som jeg ikke kunne skrive. Nu kan jeg KUN flette tekst postnumre.
HJÆLP
LadyBalance - vaginal coaching
Jens S
Posts: 1091
Joined: 25. Mar 2007 22:42

Post by Jens S »

Hej

Du kan ikke rette i databasen, men du foretager rettelserne i det regneark, som databasen er baseret på, gemmer så regnearket og databasen vil aut. blive opdateret.

I regnearket skal du være opmærksom på følgende:
1. række bestemmer feltnavne i databasen og hvis der er ændringer her vil feltnavnet ikke stemme overens med felterne i din etiket. Det manglende feltnavn vil blive udprintet som <feltnavn>
2. række bestemmer felttype (numerisk, dato eller tekst o.a.) og så kan det ikke nytte at det første er 8700 (numerisk) og længere nede i kolonne findes DK-9800 (tekstfelt). Felter med forkert felttype bliver simpelthen udeladt.

En løsning vil være at gøre hele kolonnen (eller hele arket) til tekstfelter:
a. Marker hele kolonnen
b. Vælg Formater - Celler - Tal - vælg Tekst (formatkode @).
c. Vælg Rediger - Søg og erstat (ctrl+F)
d. Søg efter: .* (punktum stjerne)
Erstat med: & (og-tegn)
Flere indstillinger: x ved 'Kun det markerede' og 'Regulære udtryk'
e. Tryk på 'Erstat alle' (det er først nu kolonnen ændres til tekst)
Du må ikke bruge denne metode på datofelter, de bliver nemlig rettet til den serielle datoværdi, og det kan du ikke bruge til noget.

Hvis du henter dine data fra nettet (kopierer over i Calc?) og indsætter som 'uformateret tekst' kan du i det filter der dukker op, bestemme at alle felter skal være tekst og således undgå problemet.

mvh
Jens
ingedorthe
Posts: 4
Joined: 19. Jun 2010 11:21
Location: Vejle
Contact:

Formatering i databaser

Post by ingedorthe »

Hej Jens
Tak for svar.
Ved at følge din kogebog lykkedes det mig at få den til at skrive de rigtige felter med. Men jeg kunne godt lide at vide hvorfor. Øvelsen med at erstatte .* med & - den kan jeg ikke gennemskue. Står tal med .* og tekst med &? Uanset hvordan de er formateret? Kan man se / finde de koder nogen steder.
Generelt synes jeg at det er et problem, at man ikke kan se på et felt i calc, hvordan det er formateret.
Egentlig ville jeg gerne have haft afsendelses-datoen med over i basen (der ser jeg hvilke ordrer, der skal udskrives), men det er endnu ikke lykkedes. Der er to rækker med datoer (bestillings-og afsendelsesdato), som ser ens ud. Begge bliver blå når man beder om Vis værdier - men det er kun bestillingsdatoen som bliver synlig i basen.
:wink:
LadyBalance - vaginal coaching
Jens S
Posts: 1091
Joined: 25. Mar 2007 22:42

Post by Jens S »

Det Søg og erstat gør, er blot en nyindtastning af de værdier/tekster der i forvejen findes i cellerne, og ved at disse allerede er formateret som tekst, vil alle cellerne nu blive tekst. Ctrl+F8 vil vise det. Nyindtastning kan også gøres manuelt eller ved at kopiere området og indsætte speciel som tekst. Numeriske værdier er højrejusteret og tekst er venstrejusteret.

Koder i Søg og erstat: . betyder find et hvilketsomhelst tegn og * betyder 0 eller flere af samme slags tegn. & betyder erstat med det du har fundet. Se mere her http://wiki.services.openoffice.org/wik ... _in_Writer

Er du sikker på at de felter du ikke får med, er med i etiketdesign. Se under Filer - Ny(t) - Etiketter - Etiketter fanen. Husk at gemme regneark, så kan du, når du trykker F4, se om ændringerne er blevet korrekt opdateret i basen.

mvh
Jens
ingedorthe
Posts: 4
Joined: 19. Jun 2010 11:21
Location: Vejle
Contact:

Konvertere til database

Post by ingedorthe »

Hej Jens
Det er i selve tabellen i base, at jeg ikke får dato-rækken med. Jeg har prøvet at køre samme proces som virkede med postnumrene - men det ser ikke ud til at virke. Jeg er jo nødt til at bevare datoformatet.
Smart med alle de koder man kan bruge i søg og erstat.

Inge Dorthe
LadyBalance - vaginal coaching
Jens S
Posts: 1091
Joined: 25. Mar 2007 22:42

Post by Jens S »

Hvis 2 række i dato-kolonnen er tom, vil basen danne et tomt felt og alle andre værdier nedad i kolonnen bliver afvist (der er ikke plads til noget i en tom type). Så sørg for at alle celler i række 2 er fyldt.(evt. bare et punktum for tekstværdier)

Jeg har fundet en måde at ændre datokolonnen til tekst. Brug som tidligere Søg og erstat, søg efter .* og erstat med '& (enkelt anførselstegn efterfulgt af &, ' sidder lige til venstre for enter-tasten). Når man starter en indtastning med ' fortæller man calc at den ikke skal fortolke på indtastningen, men opfatte alt der kommer efter ' som alm. tekst. ' bliver ikke vist i cellen, men kun i indtastningslinjen. Du behøver ikke at forhåndsformatere som tekst.

mvh
Jens
ingedorthe
Posts: 4
Joined: 19. Jun 2010 11:21
Location: Vejle
Contact:

Formater i calc

Post by ingedorthe »

YES - det ser ud til at virke med konverteringen til tekst.
Tak for hjælpen
Inge Dorthe :lol:
LadyBalance - vaginal coaching
bøgedal
Posts: 1
Joined: 30. Jun 2010 10:28
Location: solrød

konvertering til OO-base

Post by bøgedal »

Jeg har for nogle år siden lavet et medlemssystem til en lille forening i MC-Access. Efter at have stiftet bekendskab med OO's databaseprogram, der har langt flere moderne faciliteter, vil jeg konvertere til OO.

Da mit medlemsprogram bruges af mindre erfarne brugere, er det vigtigt med en hovedoversigt hvor de kan vælge hvor de vil hen i databasen.

Mit spørgsmål til panenet er om der kan laves en hovedoversigt som i Access. ? Har ikke kunnet finde nogen beskrivelse i OO herom.

M.v.h. Erling
Carsten Henning Bitsch
Posts: 26
Joined: 16. Nov 2008 22:30
Location: Midtjylland
Contact:

Menuer i Base

Post by Carsten Henning Bitsch »

Hej Bøgedal
Jeg har selv lavet menuknapper i formular
Knap 1 "Liste med mobiltelefonnumre" laver txt-fil fra DB til Nokia suite
Knap 2. "Indsætter fødselsdagsflag i kalender"
Hver knap er i egenskab -> Fanebladet Hændelser tilføjet en Udfør handling der er at køre en basic macro. Som f.eks. herunder.
Sub exportToText
Dim RowSet AS Object
Dim FileName As String
Dim FileNumber As String
Dim FieldDelim As String
Dim StringDelim As String
Dim strSQL As String
Dim I As Integer
Dim tmpStr As String
Dim tmpVal As Variant
Dim Column As Object
dim tmp as string
dim tomstr as string

FieldDelim=";" : StringDelim=chr(34)
FileNum=FreeFile : FileName="c:\temp\telefonnumre.csv"
Open FileName For Output As #FileNum

RowSet=CreateUnoService("com.sun.star.sdb.RowSet")
strSQL="SELECT Fælles_Personale.Initial, Fælles_Personale.Plusmobilnr, Fælles_Personale.Mobilnr, Fælles_Personale.email, Fælles_PersonKontor.tlfnr, Fælles_PersonKontor.plustlfnr, Fælles_PersonKontor.Kontor FROM GeopartnerDB.dbo.Fælles_PersonKontor AS Fælles_PersonKontor, GeopartnerDB.dbo.Fælles_Personale AS Fælles_Personale WHERE Fælles_PersonKontor.MedarbejderID = Fælles_Personale.MedarbejderId AND Fælles_Personale.Fratrådt_dato IS NULL order by Fælles_Personale.Initial"
With RowSet
.DataSourceName=ConvertToURL(_
"L:\geopartnerDB.odb")
.CommandType=2
.Command=strSQL
.execute()
End With
REM DUMP COLUMN HEADINGS
tmpStr=""
tmpstr="""Titel"";""Fornavn"";""Mellemnavn"";""Efternavn"";""Suffiks"";""Stilling"";""Firma"";""Fødselsdag"";""SIP-adresse"";""Tryk-og-tal"";""Del visning"";""Bruger-id"";""Noter"";""Mobil (generel)"";""Telefon (generel)"";""E-mail (generel)"";""Fax (generel)"";""Videoopkald (generel)"";""Webadresse (generel)"";""VoIP-adresse (generel)"";""Postboks (generel)"";""Lokal (generel)"";""Gade (generel)"";""Postnummer (generel)"";""By (generel)"";""Delstat/område (generel)"";""Land/region (generel)"";""Mobil (privat)"";""Telefon (privat)"";""E-mail (privat)"";""Fax (privat)"";""Videoopkald (privat)"";""Webadresse (privat)"";""VoIP-adresse (privat)"";""Postboks (privat)"";""Lokal (privat)"";""Gade (privat)"";""Postnummer (privat)"";""By (privat)"";""Delstat/område (privat)"";""Land/region (privat)"";""Mobil (arbejde)"";""Telefon (arbejde)"";""E-mail (arbejde)"";""Fax (arbejde)"";""Videoopkald (arbejde)"";""Webadresse (arbejde)"";""VoIP-adresse (arbejde)"";""Postboks (arbejde)"";""Lokal (arbejde)"";""Gade (arbejde)"";""Postnummer (arbejde)"";""By (arbejde)"";""Delstat/område (arbejde)"";""Land/region (arbejde)"";"""""
Print #FileNum,tmpStr

REM NOW DUMP DATA
tomstr=""""""
While RowSet.next()
tmpStr=""
For I=0 To RowSet.Columns.Count-1
Column=RowSet.Columns.getByIndex(I)
tmpVal=getXXX(Column)
tmp=StringDelim & escapeChar(tmpVal,StringDelim,StringDelim) & StringDelim
if I=0 Then
tmpStr=tomstr & FieldDelim & tmp & FieldDelim
'initial
elseif I=1 then
tmpStr=tmpStr & """"";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";" & tmp & FieldDelim
'plusmobilnr
elseif I=2 then
tmpStr=tmpStr & tmp & FieldDelim
'mobilnummre-lang
elseif I=3 then
tmpStr=tmpStr & tmp & FieldDelim
'email
elseif I=4 then
tmpStr=tmpStr & tmp & FieldDelim & """"";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";" & tmp & FieldDelim
'tlfnr
elseif I=5 then
tmpStr=tmpStr & """"";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""";"""""
'plusnr
elseif I<RowSet.Columns.Count-1 then
tmpStr=tmpStr & tomstr
End If
Next I
Print #FileNum,tmpStr
Wend
REM CLOSE THE FILE
Close #FileNum
RowSet.Close()

msgbox "Filen C:\temp\mobiltelefonliste.csv er klar!", 0, "Mobiltelefonliste"
End Sub
-------
Er det sådan dui mener?
Med venlig hilsen

Carsten Henning Bitsch
Landinspektør

Håndværkervej 6
8600 Silkeborg
Tlf:86 821 688
Direkte:87 224 252
Mobil:61 628 333




chb@geopartner.dk

www.geopartner.dk
Post Reply