Samenvoegvelden uitlijnen

  • Onderwerp starter Onderwerp starter marka
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

marka

Gebruiker
Lid geworden
14 jul 2009
Berichten
333
Ik heb een probleem met samenvoegvelden. Soms kan een veld lengte 7 hebben en soms lengte 8, hierdoor gaat het uitlijnen van samenvoegvelden hierachter verkeerd. Kan ik instellen dat een samenvoegveld bijvoorbeeld altijd lengte 10 heeft?
 
Ik probeer je vraag te visualiseren maar slaag daar niet echt in.
Als je samen gaat voegen dan neemt het samenvoegveld de 'lengte' in van de waarde van de samen te voegen data, m.a.w. als je een adres samenvoegt en de straatnaam zou luiden:

Mr. Dr. Schokkingstraat 9

dan zou dat al gauw zo'n 25 posities vergen, terwijl als een ander record uit de d-base als straatnaam zou hebben:

Prunus 9

dat slechts 8 posities zou vergen.

In een samenvoeginstructie zou het adres bijv. kunnen heten <<adres>> hetgeen 9 posities vergt, maaaaaaaaaaaaaaaar

de invoer vanuit je d-base bepaalt toch de uiteindelijke lengte van het veld, of begrijp ik je vraag helemaal niet ?

En als je dan tóch een bepaalde uitlijning zou willen forceren, dan kun je toch simpelweg vóór en ná het samenvoegveld een TAB instellen waarbij de laatste TAB in ieder geval verder gelegen is dan het langst mogelijke invoerveld vanuit de d-base, met als resultaat dat een volgend stukje tekst overal op dezelfde positie begint?
 
Laatst bewerkt:
de invoer vanuit je d-base bepaalt toch de uiteindelijke lengte van het veld, of begrijp ik je vraag helemaal niet ?

Ja klopt, maar dat wil ik nu juist niet.

En als je dan tóch een bepaalde uitlijning zou willen forceren, dan kun je toch simpelweg vóór en ná het samenvoegveld een TAB instellen waarbij de laatste TAB in ieder geval verder gelegen is dan het langst mogelijke invoerveld vanuit de d-base, met als resultaat dat een volgend stukje tekst overal op dezelfde positie begint?

Dit werkt niet, want als veld 1 dan 8 lang is en je maakt een tab en veld 2 is 10 lang en je doet een tab, dan komt deze niet overeen.

Je moet zoiets denken

Kompaslaan 2 3362nu Sliedrecht
Eek2 3898nv Tiel

Zoiets krijg je dan
 
Wat jij wil zal nooit het gewenste resultaat opleveren want je langste veld zal de langste samenvoeg-invoer aan moeten kunnen en dat betekent dat je kortste veld een relatieve lange witruimte zal kennen, maar je krijgt het uitgelijnd door de eerstvolgende tab zodanig in te stellen dat deze 1 spatie na het langste invoerveld komt, in jouw voorbeeld dus 1 tab na de 2 van Kompaslaan.

Jij schrijft dat je iets niet wilt. Hoe had je dan in gedachten dat een lange straatnaam eruit komt te zien in een ruimte die te klein is? Als je bijv. met een Word tabel werkt dan forceer je een bepaalde horizontale ruimte met als gevolg dat wanneer deze overschreden wordt, Word de naam zal afbreken en op regel 2 zal plaatsen. Dat levert geen fraai samenvoegresultaat op.
 
Laatst bewerkt:
Wat jij wil zal nooit het gewenste resultaat opleveren want je langste veld zal de langste samenvoeg-invoer aan moeten kunnen en dat betekent dat je kortste veld een relatieve lange witruimte zal kennen, maar je krijgt het uitgelijnd door de eerstvolgende tab zodanig in te stellen dat deze 1 spatie na het langste invoerveld komt, in jouw voorbeeld dus 1 tab na de 2 van Kompaslaan.

Ja, maar dit moet dan bij alle velden handmatig? Alle andere velden zijn ook niet aan elkaar gelijk, dus dan wordt het nog vreemd uitgelijnd.


Jij schrijft dat je iets niet wilt. Hoe had je dan in gedachten dat een lange straatnaam eruit komt te zien in een ruimte die te klein is? Als je bijv. met een Word tabel werkt dan forceer je een bepaalde horizontale ruimte met als gevolg dat wanneer deze overschreden wordt, Word de naam zal afbreken en op regel 2 zal plaatsen. Dat levert geen fraai samenvoegresultaat op.

Ik snap hoe het eruit komt te zien, maar dan hoef ik het nog niet zo te willen ;).
 
In dat geval is een tabel in Word aanmaken en daar je samenvoegelden in plaatsen de oplossing voor je.
 
Ik heb een oplossing gemaakt in excel. Een standaard veldlengte bepalen door " " toevoegen (automatisch dan). Tabel werkt niet die ruimte wordt namelijk altijd weergegeven en dat ziet er vreemd uit als er geen waarde in staat.
 
Dat begrijp ik niet helemaal, het is een samenvoegbestand, betekent het dat jouw d-base lege rijen (records) bevat?
 
Het betekent dat een klant soms 12 artikelen koopt en een andere klant 3 artikelen. Je houdt de ruimte voor 12, maar het kunnen er 3 zijn.
 
Ok, maar da's toch qua layout heel fraai en ook nog een professioneel ogend te ondervangen?

Stel je hebt 12 produkten. 1,2,3,4 etc. en je neemt de samenvoegcode standaard op bij iedere klant. Dan kan ik mij zo voorstellen dat er ook een kolomnaam (lees: samenvoegveldnaam) gemaakt wordt met als naam "Aantal" of "Stuks" of whatever. Bij klanten die dat specifieke product dan niet willen hebben zou een koppelstreepje in het desbetreffende veld m.i. qua layout wel fraai staan.

Echter, ik ken jouw database niet en wil mij er ook niet mee bemoeien, maar omdat ik zelf ook wel regelmatig freubel met het samenvoegen ben ik al vele 'uitdagingen' op dit terrein tegengekomen en tot op heden was er nog niet één té groot . ;)
 
Ik weet niet hoe ik dit uit moet leggen, maar duidelijker dan dit gaat het niet lukken

Ik heb geen 12 producten maar 2500. Een klant kan meerdere artikelen bestellen. Sommige klanten bestellen 5 artikelen sommige 10, sommige 1. Dan krijg je dus rijen.

211105 KUNSTSTOF OMSLAG VOOR ZAKAGENDA (1) 600 € 0,73
2111S01 ZAKAGENDA IN KUNSTSTOF OMSLAG (1) 464 € 0,73
2111S04 ZAKAGENDA IN KUNSTSTOF OMSLAG(1)600€ 0,73
2111S10ZAKAGENDA IN KUNSTSTOF OMSLAG(1)634€ 0,73
2111Y0001INHOUD ZAKAGENDA 3 DGN PER(0)600€ 0
890601INT. BUROAGENDA 'LEADER'(1)100€ 4,79
890605INT. BUROAGENDA 'LEADER'(1)100€ 4,79
890610INT. BUROAGENDA 'LEADER'(1)50€ 4,79

Als je daar een tabel voor maakt gaat dat niet werken, want dan heb je ruimte voor 12 artikelen en als je er maar 3 hebt ziet dat er niet uti.

Conclusie van bovenstaand voorbeeld is overigens dat word niet kijkt naar de veldlengte in excel heel fijn (want ik heb alle velden een standaard veldlengte gegeven).
 
Laatst bewerkt:
Een meelezer met voldoende kennis van VBA zal het probleem van lege regels vrijs simpel kunnen oplossen denk ik.
 
Laatst bewerkt:
Ja misschien wel ja. Ik heb hem ook in het excel forum uitstaan. Want ik ben wel een beetje door de oplossingen heen!
 
Misschien moet je eens een Word documentje of een afbeelding daarvan posten met hoe het er uiteindelijk uit moet gaan zien, want ik snap er ook steeds minder van.... Het lijkt mij toch dat je een produktenlijst wilt maken van de bestelde artikelen, en dat kan probleemloos met tabinstellingen op de goede plaats worden gezet, of met een tabel. Althans, zo maak ik ze ook nog wel eens. En ik heb toch echt geen probleem om de velden op de goede plek te krijgen. Het idee om in Excel alles een vaste lengte te geven met extra spaties lijkt mij dan ook helemaal niet nodig.
 
Dan is het mogelijk vrij eenvoudig?

Cruciaal voor een goede samenvoeging met het probleem wat jij hebt is het aanmaken van een extra kolom in de productenlijst. De kolom noem je bijvoorbeeld j/n als kolomnaam (later samenvoegveldcode)
Als jij weet wat en hoeveel de klant wil hebben zet je in die extra gemaakte kolom achter een besteld product simpelweg de letter j in die kolom.
Tijdens het samenvoegen laat je Word ALLE producten samenvoegen -en nu komt 'ie:- waar een j staat achter het product in die extra aangemaakte kolom.
Word slaat vele duizenden producten over in de samenvoeging omdat je als filter hebt meegegeven dat de kolom j/n gevuld moet zijn met een j voordat de data uit deze regel samengevoegd mag worden.

Of snap ik het nu nog (steeds) niet?
 
Ik snap wel ongeveer wat je bedoelt (hoop ik), en het zou er dus ongeveer zo uit moeten zien?
Overigens vind ik de opzet van het geheel niet heel erg fantastisch, want nogal omslachtig om het zo te doen, maar als het werkt, dan werkt 't....
 
Oplossing van Thoralf in excel sectie.

Je moet dan 9in Word bij Beeld liniaal aangevinkt hebben, dan zie je bovenin het documentveld van Word, direct onder de werkbalken, een liniaal, ook aan de linkerkant zie je er één.
In de liniaal bovenin moet je nu aangeven waar de tabs naar toe moeten springen Of via menu Opmaak => Tabs
Als je dat niet invult wordt er naar de standaard-tabs gesprongen (die staan om de 1,25 cm, zie de kleine donker grijze streepjes).


Deze werkt zoals ik het nu kan zien :D.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan