<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Problem mit WhereClause/DefinitionExpression - SQL Ausdruck (VBA) in Deutsche GIS Anwender Questions</title>
    <link>https://community.esri.com/t5/deutsche-gis-anwender-questions/problem-mit-whereclause-definitionexpression-sql/m-p/849508#M125</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;ist es Ã¼berhaupt mÃ¶glich im Zuge einer WhereClause/DefinitionExpression-SQL-Abfrage ein Attribut-Tabellen-Feld vom Datentyp LONG mit einem STRING-Objekt einer Variable zu vergleichen? Leider funktioniert mein SQL-Statement nicht (&lt;/SPAN&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;"PLZ = '" &amp;amp; StrPLZ &amp;amp; "'"&lt;/PRE&gt;&lt;SPAN&gt;) und google und Foren konnten mir auch keine LÃ¶sung vermitteln. PLZ ist das Attribut-Tabellen-Feld vom Datentyp LONG. StrPLZ ist die Variable vom Datentyp STRING; die Variable wird Ã¼ber eine Anwendereingabe aus einer ComboBox geladen. Im folgenden der Code und veranschaulichende Screenshots:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;'Definition Query: Suche von POI Ã¼ber die Postleitzahl (Name des Buttons im GUI: POI suchen)
Private Sub CommandButton3_Click()

'Connect Schnittstellen
Dim pMxDocument As IMxDocument
Set pMxDocument = ThisDocument
Dim pMap As IMap
Set pMap = pMxDocument.FocusMap
Dim pLayer0 As ILayer
Set pLayer0 = pMap.Layer(0)

'Schnittstelle wechseln (QueryInterface),
'um fÃ¼r die Abfrage notwendige Eigenschaften und Methoden zu erhalten
Dim pDefQuery As IFeatureLayerDefinition
Set pDefQuery = pLayer0

'Anwendereingaben aus der ComboBox3, ComboBox4 und ComboBox5 in Variable schreiben
'benÃ¶tigt, damit das Programm 'weiÃ?', welche Features (POI) angezeigt werden sollen
Dim StrPLZ As String
Dim StrOberKat As String
Dim StrUnKat As String
StrPLZ = ComboBox3.Value
StrOberKat = ComboBox4.Value
StrUntKat = ComboBox5.Value

'Variable fÃ¼r Message Boxen deklarieren (Name des PLZ-Bereichs)
Dim StrText As String
StrText = TextBox1.Text

'gegebenenfalls vorhandene Auswahl entfernen
pDefQuery.DefinitionExpression = ""

'Definition Query durchfÃ¼hren
If StrPLZ = "Bitte Postleitzahl wÃ¤hlen" Then
MsgBox "Sie haben keine Auswahl getroffen. Alle POI werden angezeigt", vbOKOnly + vbExclamation, "Auswahl treffen"
pDefQuery.DefinitionExpression = ""
ElseIf StrUntKat = "Optional: Unterkategorie wÃ¤hlen" Then
MsgBox "Alle POI in der Oberkategorie '" &amp;amp; StrOberKat &amp;amp; "' im Postleitzahlbereich '" &amp;amp; StrPLZ &amp;amp; "' " &amp;amp; StrText &amp;amp; "werden angezeigt", vbOKOnly, "Hinweis"
pDefQuery.DefinitionExpression = "PLZ = '" &amp;amp; StrPLZ &amp;amp; "'"
End If


'Refresh
pMxDocument.ActiveView.Refresh
pMxDocument.UpdateContents

End Sub&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;Private Sub UserForm_Activate()

ComboBox3.Clear
ComboBox3.Value = "Bitte Postleitzahl wÃ¤hlen"
ComboBox3.AddItem "44795"&amp;nbsp;&amp;nbsp; 'Bochum-Weitmar
ComboBox3.AddItem "44797"&amp;nbsp;&amp;nbsp; 'Bochum-Weitmar
ComboBox3.AddItem "44799"&amp;nbsp;&amp;nbsp; 'Bochum
ComboBox3.AddItem "44801"&amp;nbsp;&amp;nbsp; 'Bochum-Querenburg
ComboBox3.AddItem "44803"&amp;nbsp;&amp;nbsp; 'Bochum-Steinkuhl
ComboBox3.AddItem "45527"&amp;nbsp;&amp;nbsp; 'Hattingen
ComboBox3.AddItem "58454"&amp;nbsp;&amp;nbsp; 'Witten
ComboBox3.AddItem "58455"&amp;nbsp;&amp;nbsp; 'Witten
ComboBox3.AddItem "58456"&amp;nbsp;&amp;nbsp; 'Witten-Herbede
ComboBox3.AddItem "0"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Keine PLZ Zuordnung mÃ¶glich

ComboBox4.Clear
ComboBox4.Value = "Optional: Oberkategorie wÃ¤hlen"
ComboBox4.AddItem "Ã?ffentliche Einrichtungen"
ComboBox4.AddItem "Wohnheime"
ComboBox4.AddItem "Nahversorgung"
ComboBox4.AddItem "Dienstleistungen"
ComboBox4.AddItem "Gesundheitswesen"
ComboBox4.AddItem "Freizeiteinrichtungen/Sport/Wellness"
ComboBox4.AddItem "Gastronomie"
ComboBox4.AddItem "Kultur/Unterhaltung"
ComboBox4.AddItem "Sonstige&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; [ATTACH=CONFIG]15083[/ATTACH]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[ATTACH=CONFIG]15084[/ATTACH]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 12 Dec 2021 16:59:55 GMT</pubDate>
    <dc:creator>MauriceSchoenert</dc:creator>
    <dc:date>2021-12-12T16:59:55Z</dc:date>
    <item>
      <title>Problem mit WhereClause/DefinitionExpression - SQL Ausdruck (VBA)</title>
      <link>https://community.esri.com/t5/deutsche-gis-anwender-questions/problem-mit-whereclause-definitionexpression-sql/m-p/849508#M125</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;ist es Ã¼berhaupt mÃ¶glich im Zuge einer WhereClause/DefinitionExpression-SQL-Abfrage ein Attribut-Tabellen-Feld vom Datentyp LONG mit einem STRING-Objekt einer Variable zu vergleichen? Leider funktioniert mein SQL-Statement nicht (&lt;/SPAN&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;"PLZ = '" &amp;amp; StrPLZ &amp;amp; "'"&lt;/PRE&gt;&lt;SPAN&gt;) und google und Foren konnten mir auch keine LÃ¶sung vermitteln. PLZ ist das Attribut-Tabellen-Feld vom Datentyp LONG. StrPLZ ist die Variable vom Datentyp STRING; die Variable wird Ã¼ber eine Anwendereingabe aus einer ComboBox geladen. Im folgenden der Code und veranschaulichende Screenshots:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;'Definition Query: Suche von POI Ã¼ber die Postleitzahl (Name des Buttons im GUI: POI suchen)
Private Sub CommandButton3_Click()

'Connect Schnittstellen
Dim pMxDocument As IMxDocument
Set pMxDocument = ThisDocument
Dim pMap As IMap
Set pMap = pMxDocument.FocusMap
Dim pLayer0 As ILayer
Set pLayer0 = pMap.Layer(0)

'Schnittstelle wechseln (QueryInterface),
'um fÃ¼r die Abfrage notwendige Eigenschaften und Methoden zu erhalten
Dim pDefQuery As IFeatureLayerDefinition
Set pDefQuery = pLayer0

'Anwendereingaben aus der ComboBox3, ComboBox4 und ComboBox5 in Variable schreiben
'benÃ¶tigt, damit das Programm 'weiÃ?', welche Features (POI) angezeigt werden sollen
Dim StrPLZ As String
Dim StrOberKat As String
Dim StrUnKat As String
StrPLZ = ComboBox3.Value
StrOberKat = ComboBox4.Value
StrUntKat = ComboBox5.Value

'Variable fÃ¼r Message Boxen deklarieren (Name des PLZ-Bereichs)
Dim StrText As String
StrText = TextBox1.Text

'gegebenenfalls vorhandene Auswahl entfernen
pDefQuery.DefinitionExpression = ""

'Definition Query durchfÃ¼hren
If StrPLZ = "Bitte Postleitzahl wÃ¤hlen" Then
MsgBox "Sie haben keine Auswahl getroffen. Alle POI werden angezeigt", vbOKOnly + vbExclamation, "Auswahl treffen"
pDefQuery.DefinitionExpression = ""
ElseIf StrUntKat = "Optional: Unterkategorie wÃ¤hlen" Then
MsgBox "Alle POI in der Oberkategorie '" &amp;amp; StrOberKat &amp;amp; "' im Postleitzahlbereich '" &amp;amp; StrPLZ &amp;amp; "' " &amp;amp; StrText &amp;amp; "werden angezeigt", vbOKOnly, "Hinweis"
pDefQuery.DefinitionExpression = "PLZ = '" &amp;amp; StrPLZ &amp;amp; "'"
End If


'Refresh
pMxDocument.ActiveView.Refresh
pMxDocument.UpdateContents

End Sub&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;Private Sub UserForm_Activate()

ComboBox3.Clear
ComboBox3.Value = "Bitte Postleitzahl wÃ¤hlen"
ComboBox3.AddItem "44795"&amp;nbsp;&amp;nbsp; 'Bochum-Weitmar
ComboBox3.AddItem "44797"&amp;nbsp;&amp;nbsp; 'Bochum-Weitmar
ComboBox3.AddItem "44799"&amp;nbsp;&amp;nbsp; 'Bochum
ComboBox3.AddItem "44801"&amp;nbsp;&amp;nbsp; 'Bochum-Querenburg
ComboBox3.AddItem "44803"&amp;nbsp;&amp;nbsp; 'Bochum-Steinkuhl
ComboBox3.AddItem "45527"&amp;nbsp;&amp;nbsp; 'Hattingen
ComboBox3.AddItem "58454"&amp;nbsp;&amp;nbsp; 'Witten
ComboBox3.AddItem "58455"&amp;nbsp;&amp;nbsp; 'Witten
ComboBox3.AddItem "58456"&amp;nbsp;&amp;nbsp; 'Witten-Herbede
ComboBox3.AddItem "0"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Keine PLZ Zuordnung mÃ¶glich

ComboBox4.Clear
ComboBox4.Value = "Optional: Oberkategorie wÃ¤hlen"
ComboBox4.AddItem "Ã?ffentliche Einrichtungen"
ComboBox4.AddItem "Wohnheime"
ComboBox4.AddItem "Nahversorgung"
ComboBox4.AddItem "Dienstleistungen"
ComboBox4.AddItem "Gesundheitswesen"
ComboBox4.AddItem "Freizeiteinrichtungen/Sport/Wellness"
ComboBox4.AddItem "Gastronomie"
ComboBox4.AddItem "Kultur/Unterhaltung"
ComboBox4.AddItem "Sonstige&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; [ATTACH=CONFIG]15083[/ATTACH]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[ATTACH=CONFIG]15084[/ATTACH]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 16:59:55 GMT</pubDate>
      <guid>https://community.esri.com/t5/deutsche-gis-anwender-questions/problem-mit-whereclause-definitionexpression-sql/m-p/849508#M125</guid>
      <dc:creator>MauriceSchoenert</dc:creator>
      <dc:date>2021-12-12T16:59:55Z</dc:date>
    </item>
    <item>
      <title>Re: Problem mit WhereClause/DefinitionExpression - SQL Ausdruck (VBA)</title>
      <link>https://community.esri.com/t5/deutsche-gis-anwender-questions/problem-mit-whereclause-definitionexpression-sql/m-p/849509#M126</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Original User: mauriceSch&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;ok, hab eine Lösung&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;einfach eine neue Spalte in der Attribut Tabelle der Daten anlegen, diese Spalte als Datentyp TEXT zuweisen und die Zahlen aus dem LONG Feld einfügen&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;so bekommt man STRING Zahlen, die mit SQL in VBA abgefragt werden können&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 10 Jun 2012 11:48:09 GMT</pubDate>
      <guid>https://community.esri.com/t5/deutsche-gis-anwender-questions/problem-mit-whereclause-definitionexpression-sql/m-p/849509#M126</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2012-06-10T11:48:09Z</dc:date>
    </item>
  </channel>
</rss>

