MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 12.09.2017, 10:31   #1
rainerZZ
MOF User
MOF User
Standard Acc2010 - Nz(...,0) als Zahl darstellen?

Hallo zusammen,

in einer Abfrage verwende ich folgenden Ausdruck:

x: Nz([PLAN_MENGE];0)

Die PLAN_MENGE ist ursprünglich eine Zahl. Nahc dem setzen von "Nz" steht PLAN_MENGE in der Datenblattansicht der Abfrage links. Bedeutet das, dass Nz aus der Zahl einen Text macht?

Mein Problem ist dann nämlcih, dass beim Export in Excel ein text statt einer ZAhl erkannt wird. Wie mache ich nach dem Nz Access-seitig daraus eine Zahl?
rainerZZ ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.09.2017, 10:44   #2
Haxnwirt
MOF User
MOF User
Standard

Dim dblZahl as double

dblZahl = nz((Plan_Menge,0)

Datenfeld in der Tabelle auch als Zahl definieren, vom Typ Double
Haxnwirt ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.09.2017, 10:54   #3
rainerZZ
Threadstarter Threadstarter
MOF User
MOF User
Standard

Zitat:

Dim dblZahl as double

dblZahl = nz((Plan_Menge,0)

Datenfeld in der Tabelle auch als Zahl definieren, vom Typ Double


Ich bin ja direkt im Entwurfsmodus der Abfrage. Wie kann ich dort dblZahl als double definieren?? PLAN_MENGE basiert auf einer Tabelle und ist dort als Long Integer definiert.
rainerZZ ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.09.2017, 11:02   #4
maikek
MOF Guru
MOF Guru
Standard

Die nz()-Funktion ändert von sich aus keine Datentypen. Guck mal in der Abfrage, als was das Feld "x" definiert ist.
Ansonsten:
Code:

X: Clng(nz(Plan_Menge;0))
also den Vorschlag von Leonhard in "Abfragesyntax" umgesetzt mit Umwandlung in ein Long Integer.
Probiers aus, ob Excel das dann richtig versteht.
maike

__________________

Bitte dein Thema auf erledigt setzen, wenn's durch ist!
MOF Access Stammtisch in Bremen
maikek ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.09.2017, 11:10   #5
Haxnwirt
MOF User
MOF User
Standard

Dann ist das Datenfeld schon vom Typ Long.

Dieen Fall hatte ich noch nicht, so aus dem blauen heraus, würde ich sagen, setze ein format() darum. Ich lasse mich aber auch gern verbessern.

Maike war schneller und sieht auch besser aus :-)
Haxnwirt ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.09.2017, 11:14   #6
maikek
MOF Guru
MOF Guru
Standard

Dann verbessere ich mal :
Format() erzeugt immer Datentyp Text.
maike

__________________

Bitte dein Thema auf erledigt setzen, wenn's durch ist!
MOF Access Stammtisch in Bremen
maikek ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.09.2017, 11:14   #7
rainerZZ
Threadstarter Threadstarter
MOF User
MOF User
Standard

Code:

X: Clng(nz(Plan_Menge;0))
Genau das wars! Danke
rainerZZ ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.09.2017, 11:17   #8
gpswanderer
MOF Guru
MOF Guru
Standard

Hallo,
sowohl Nz als auch Format wandeln eine Zahl in Text. Der Datentyp wird dabei nicht geändert.

Zitat:

setze ein format() darum

Das funktioniert daher auch nicht.
Folge daher dem Vorschlag von Maike.

__________________

Gruß
Klaus
Office2010, Win10
gpswanderer ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.09.2017, 11:39   #9
Nouba
MOF Guru
MOF Guru
Standard

Es sollte auch x: Wenn([PLAN_MENGE] Ist Null;0;[PLAN_MENGE]) funktionieren. Was effizienter ist, müsste man benchmarken.
Nouba ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.09.2017, 11:59   #10
markusxy
MOF Koryphäe
MOF Koryphäe
Standard

Zitat: von gpswanderer Beitrag anzeigen

Hallo,
sowohl Nz als auch Format wandeln eine Zahl in Text.

Das würde ich noch mal überprüfen
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.09.2017, 12:19   #11
Nouba
MOF Guru
MOF Guru
Standard

Variant-Werte werden vom Ausdruckdienst als String behandelt, sonst würde ja ein Nz(Null, CLng(0)) funktieren, was nicht der Fall ist.

Geändert von Nouba (12.09.2017 um 12:22 Uhr).
Nouba ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.09.2017, 12:52   #12
markusxy
MOF Koryphäe
MOF Koryphäe
Standard

Zitat: von Nouba Beitrag anzeigen

Variant-Werte werden vom Ausdruckdienst als String behandelt, sonst würde ja ein Nz(Null, CLng(0)) funktieren, was nicht der Fall ist.

Also bei mir ist das Ergebnis vom Typ Variant/Long.
Ich verstehe nicht, was du mir sagen willst.

?TypeName(Nz(Null, CDbl(3)))
Double

?TypeName(Nz(Null, clng(3)))
Long

?TypeName(Nz(Null, 3&))
Long
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.09.2017, 13:17   #13
Nouba
MOF Guru
MOF Guru
Standard

Markus, VBA und der Access-Ausdruckdienst sind zwei verschiedene Paar Schuh'. Der TE will den Cast vermutliuch ja nur deshalb durchführen, weil das Ergebnis links- und nicht wie gewünscht rechtsbündig ausgerichtet ist.
Nouba ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.09.2017, 15:35   #14
markusxy
MOF Koryphäe
MOF Koryphäe
Standard

@Nouba,
also im Recordset wird es zu einem String. Danke.
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.09.2017, 17:57   #15
ebs17
MOF Guru
MOF Guru
Standard

Code:

Clng(Nz(Plan_Menge, 0))
Nz(Plan_Menge, 0) * 1

IIF(Plan_Menge Is NULL, 0, Plan_Menge)
Nz erzeugt als Rückgabewert Variant mit Vorrang Text. Ergänzt man eine entsprechende datentypgerechte Berechnung, hat man dann den gewünschten Datentyp auch real vorliegen.

Aufwandsbetrachtung:
Eine einfache Multiplikation (oder gar eine Addition mit 0) dürfte weniger aufwändig sein als die Verwendung einer Typumwandlungfunktion aus der VBA-Bibliothek.

Das IIF ist Element des Jet-SQL-Befehlssatzes. Man muss da nicht auf die Accessfunktion Nz und eine weitere Operation wie oben beschrieben zurückgreifen. Da das Ganze eh eine Abfrage ist, sollte der Verbleib in puren SQL sich positiv auf Performance auswirken, zudem ist diese Gestaltung datentypsicher.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:35 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.