Zum Inhalt springen

PromiseYou

Mitglieder
  • Gesamte Inhalte

    46
  • Benutzer seit

  • Letzter Besuch

Beiträge von PromiseYou

  1. ne sorry ... aber das ist mir alles was zu schwammig :/

    in dem was ich bekomme hab steht drin, das form soll auftauchen wenn in B9 nix drin ist ..

    dafür habe ich eine lauffähige version geschickt (also den grundcode)

    und ich möchte wetten, dass ich dein problem gelöst bekomme, aber mit diesen angaben ist es nicht möglich

    und wie in einem beitrag schon vorher gesagt, ich glaube schon dass du programmieren kannst, jedoch hast du scheinbar noch nicht viel mit VB bzw VBA gearbeitet.

    sämtliche anpassungen an ein einem formular können nur zur laufzeit des formulars durchgeführt werden

    man kann jedoch ein formular zur laufzeit als object erstellen, und dieses dann zur laufzeit erst gestalten (also auch label, schalter und boxen hinzufügen), hierzu empfehle ich dir jedoch entsprechende dokumentionen

    Wie ich mir schon gedacht habe ... alles halb so wild

    es läuft wie folgt:

    Code:

    Private Sub Workbook_Open()

    '#####################################

    '#####################################

    '### If the cell B9 is not filled, ###

    '### the UserForm1 will be shown. ###

    '#####################################

    '#####################################

    UserForm1.Show

    'If Sheets("Tabell1").Cells(9, 2) = "" Then

    ' UserForm1.Show

    ' Else

    ' End

    'End If

    End Sub

    und in

    Code:

    Private Sub UserForm_initialize()

    If Sheets("Tabelle1").Cells(9, 2) = "" Then

    UserForm1.Show

    Else

    Unload UserForm1

    End If

    '##########################

    '##########################

    '### Filling the fields ###

    '##########################

    '##########################

    nach diesen Änderungen ging es bei mir sofort, und es ist genau wie ich beschrieben habe.

    und hier war nicht viel zu schreiben ...

    im open hab ich lediglich ' für REM gesetzt, und das geremte habe ich in das initialize verschoben und leicht angepasst ... also wenig wirklich neu zu schreiben lediglich "Tabelle1" habe ich statt des orignaltabellenblatts genommen.

  2. also nochmal ;)

    im workbook_open wird das Formular in den Speicher geladen und die ablaufsteuerung an dieses übergeben PUNKT hier wird nix gefüllt entschieden oder sonst was ... sondern nur der aufruf !

    nun sind wir beim Formular

    das beginnt mit dem initialize (da sind wir uns ja auch einig)

    also lege ich dann doch hier fest, ob das formular gezeigt wird

    - wenn es gezeigt wird, welche schalter müssen sichtbar sein

    - welche textboxen müssen wie vorgefüllt werden

    - ....

    - ....

    und die voraussetzungen wie das formular reagieren soll schaffe ich ebenfalls hier.

    so kann ich nun hier sagen: schau in zelle b9, steht da was, dann übertrage die tabelle hier ins form

    steht da nix, dann belege alles mit default

    aber wenn ich das hier grad alles so lese, denke ich eher, du hast nen allgemeines problem mit dem verständnis bei der programmierung und VBA.

    in VBA (VB) nimmt man teils andere wege, als man es in zB in C++ lösen würde

  3. Wie ich mir schon gedacht habe ... alles halb so wild ;)

    es läuft wie folgt:

    
    Private Sub Workbook_Open()
    
    
    '#####################################
    
    '#####################################
    
    '### If the cell B9 is not filled, ###
    
    '### the UserForm1 will be shown.  ###
    
    '#####################################
    
    '#####################################
    
    UserForm1.Show
    
    
    'If Sheets("Tabell1").Cells(9, 2) = "" Then
    
    '        UserForm1.Show
    
    '    Else
    
    '        End
    
    'End If
    
    
    End Sub
    und in
    
    Private Sub UserForm_initialize()
    
    
    If Sheets("Tabelle1").Cells(9, 2) = "" Then
    
            UserForm1.Show
    
        Else
    
            Unload UserForm1
    
    
    End If
    
    
    '##########################
    
    '##########################
    
    '### Filling the fields ###
    
    '##########################
    
    '##########################
    
    

    nach diesen Änderungen ging es bei mir sofort, und es ist genau wie ich beschrieben habe.

    im Woorkbook_open NUR das show ohne Bedingungen

    erst dann im Form weiter abfragen ...

    mit dem unload kannst dann auch wieder das Form beenden (cmdEnd)

  4. das ist vollkommen klar, dass du im workbook_open noch nicht auf das form zugreifen kannst :) ... denn es ist ja noch nicht da :) .. erst nach dem .show wird das Form in den Speicher geladen.

    Ab hier geht der Focus dann auf das INITIALIZE ...

    hier werden nun alle Textfelder, Listboxen etc. vorbelegt

    nach End SUB wartet Windows (Excel) auf eine Interaktion des Users (Forms)

    Sollte das Füllen des Forms zeitmäßig sehr Lange dauern rate ich dazu, nach der Variabelendef in der INITIALZE das Form auf invisible zu setzen ... alles füllen, und dann wieder auf visible zurück ..

    dann geht das füllen bestimmter Steuerelemente auch zügiger, als wenn sie auf dem Form (oder das Form selber) sichtbar ist.

    also in der WorkBook_open() NUR Form1.show

    sonst nix

    ALLES andere was im Form gemacht werden soll über das INITIALIZE()

    ansonsten kann ich auch nur sagen, dann hätte ich gern mal die Datei

  5. was willst du denn in dem Form ansteuern ?

    Das würde ich in der "UserForm_Initialize()" des Forms machen.

    Also Einstellellungen für Bezeichner oder sonstiges was man sich aus einer INI oder aus der REG holt.

    Auch Verbindungen zu Datenbanken oder so öffne ich erst in dieser SUB.

    Bei mir steht immer nur das Form.show im WorkBook_Open()

    Dann schalte ich beim Initialize das visible von Excel auf false.

    Man kann ja auch im "Private Sub UserForm_Initialize()"

    form1.visible = false

    als erstes setzen dann wird das Form erst garnicht sichtbar

  6. Also da gibt es schon was, wie man beim start einer Arbeitsmappe ein Form öffnet.

    Private Sub Workbook_Open()

    UserForm1.Show [modal/unmodal]

    End Sub

    Hier wird beim Öffnen das Form1 aufgerufen, und die Ablaufsteuerung wird an die SUB main() übertragen sofern vorhanden, ansonsten wartet Windows auf Dialogstuerung aus dem Formular.

  7. Hier ist wohl die Überschrift was falsch :/

    So wie ich das lese, hast du hier weniger ein Problem mit dem Objekt, als vielmehr mit den Stringfunktionen.

    Ich hab dir mal den "Hilfetext" hier hin kopiert, der ist eigentlich selbsterklärend

    Chr-Funktion

    Gibt einen Wert vom Typ String zurück, der das Zeichen enthält, das dem angegebenen Zeichen-Code zugeordnet ist.

    Syntax

    Chr(Zeichencode)

    Das erforderliche Argument Zeichencode ist ein Wert vom Typ Long, der ein Zeichen festlegt.

    Bemerkungen

    Die Zahlen von 0 bis 31 entsprechen den nicht darstellbaren Standard-ASCII-Codes. Chr(10) gibt zum Beispiel ein Zeilenvorschubzeichen zurück. Der normale Bereich für Zeichencode ist 0 bis 255. Auf DBCS-Systemen entspricht der tatsächliche Bereich für Zeichencode jedoch -32768 bis 65535.

    Anmerkung Die ChrB-Funktion wird mit Byte-Daten verwendet, die in einem Wert vom Typ String enthalten sind. Anstelle eines Zeichens, das aus einem oder zwei Bytes bestehen könnte, gibt ChrB immer ein einzelnes Byte zurück. Die ChrW-Funktion gibt einen Wert vom Typ String zurück, der das Unicode-Zeichen enthält. Dies gilt nicht für Plattformen, auf denen Unicode nicht unterstützt wird. In diesem Fall entspricht das Verhalten der Chr-Funktion.

    Anmerkung Visual Basic für den Macintosh unterstützt keine Unicode-Zeichenfolgen. Deshalb kann ChrW(n) nicht wie in der Windows-Umgebung alle Unicode-Zeichen für n Werte im Bereich von 128 bis 65.535 zurückgeben. Statt dessen versucht ChrW(n), für Unicode-Werte, bei denen n größer als 127 ist, den Wert zu "erraten". Sie sollten ChrW daher nicht in der Macintosh-Umgebung verwenden.

    somit sind chr() und chr$() (mehr oder weniger) identisch, und das mit der Hexadezimalregelung findet (fast) überall anwendung.

  8. Hallo zusammen ;)

    Ich verzweifele Gerade, und hoffe, dass mir hier jemand eine Hilfe geben kann.

    Beschreibung der Situation:

    Aus einer Datenbank werden Daten ausgelesen, und auf diverse Tabellenblätter einer neuen Mappe aufgeteilt.

    Die neuen Blätter werden aus einer Vorlage erstellt, wo bereits eine Seitenformatierung stattgefunden hat.

    Diese Seiten werden auch anstandsfrei in die neue Arbeitsmappe aufgenommen, und auch gespeichert.

    Öffnet man nun diese Datei, und geht Arbeitsblatt für Arbeitsblatt durch, sind in den Seiteneinstellungen auch die Werte drin, die in der Vorlage vorgegeben waren (als Beispiel halt DIN A4 Landscape mit Fit auf eine Seitenbreite und Ränder auf 1,5 cm reduziert)

    Problem:

    Wenn ich nun mehrere Tabellenblätter dieser Mappe aktiviere, und dann über "Drucken" - "Auswahl" diese Blätter ausdrucken möchte, wird nur das erste Blatt formatiert, die nachfolgenden Blätter werden dann entsprechend der "WindowsVoreinstellung" (DinA4 normal, ohne Fit und Ränder mit 2 - 2,5 cm)

    Auch der Eintrag in der

    Private Sub Workbook_BeforePrint(Cancel As Boolean)
    
      If Not ActiveSheet.PageSetup.PrintTitleRows = "$1:$8" Then ActiveSheet.PageSetup.PrintTitleRows = "$1:$8"
    
      If Not ActiveSheet.PageSetup.PrintTitleColumns = "" Then ActiveSheet.PageSetup.PrintTitleColumns = ""
    
      If Not ActiveSheet.PageSetup.PrintArea = "" Then ActiveSheet.PageSetup.PrintArea = ""
    
      If Not ActiveSheet.PageSetup.LeftHeader = "" Then ActiveSheet.PageSetup.LeftHeader = ""
    
      If Not ActiveSheet.PageSetup.CenterHeader = "" Then ActiveSheet.PageSetup.CenterHeader = ""
    
      If Not ActiveSheet.PageSetup.RightHeader = "" Then ActiveSheet.PageSetup.RightHeader = ""
    
      If Not ActiveSheet.PageSetup.LeftFooter = "" Then ActiveSheet.PageSetup.LeftFooter = ""
    
      If Not ActiveSheet.PageSetup.CenterFooter = "" Then ActiveSheet.PageSetup.CenterFooter = ""
    
      If Not ActiveSheet.PageSetup.RightFooter = "" Then ActiveSheet.PageSetup.RightFooter = ""
    
      If Not ActiveSheet.PageSetup.LeftMargin = Application.InchesToPoints(0.590551181102362) Then ActiveSheet.PageSetup.LeftMargin = Application.InchesToPoints(0.590551181102362)
    
      If Not ActiveSheet.PageSetup.RightMargin = Application.InchesToPoints(0.590551181102362) Then ActiveSheet.PageSetup.RightMargin = Application.InchesToPoints(0.590551181102362)
    
      If Not ActiveSheet.PageSetup.TopMargin = Application.InchesToPoints(0.590551181102362) Then ActiveSheet.PageSetup.TopMargin = Application.InchesToPoints(0.590551181102362)
    
      If Not ActiveSheet.PageSetup.BottomMargin = Application.InchesToPoints(0.590551181102362) Then ActiveSheet.PageSetup.BottomMargin = Application.InchesToPoints(0.590551181102362)
    
      If Not ActiveSheet.PageSetup.HeaderMargin = Application.InchesToPoints(0.511811023622047) Then ActiveSheet.PageSetup.HeaderMargin = Application.InchesToPoints(0.511811023622047)
    
      If Not ActiveSheet.PageSetup.FooterMargin = Application.InchesToPoints(0.511811023622047) Then ActiveSheet.PageSetup.FooterMargin = Application.InchesToPoints(0.511811023622047)
    
      If Not ActiveSheet.PageSetup.PrintHeadings = False Then ActiveSheet.PageSetup.PrintHeadings = False
    
      If Not ActiveSheet.PageSetup.PrintGridlines = False Then ActiveSheet.PageSetup.PrintGridlines = False
    
      If Not ActiveSheet.PageSetup.PrintComments = xlPrintNoComments Then ActiveSheet.PageSetup.PrintComments = xlPrintNoComments
    
      If Not ActiveSheet.PageSetup.PrintQuality(1) = 600 Then ActiveSheet.PageSetup.PrintQuality(1) = 600
    
      If Not ActiveSheet.PageSetup.PrintQuality(2) = 600 Then ActiveSheet.PageSetup.PrintQuality(2) = 600
    
      If Not ActiveSheet.PageSetup.CenterHorizontally = False Then ActiveSheet.PageSetup.CenterHorizontally = False
    
      If Not ActiveSheet.PageSetup.CenterVertically = False Then ActiveSheet.PageSetup.CenterVertically = False
    
      If Not ActiveSheet.PageSetup.Orientation = xlLandscape Then ActiveSheet.PageSetup.Orientation = xlLandscape
    
      If Not ActiveSheet.PageSetup.Draft = False Then ActiveSheet.PageSetup.Draft = False
    
      If Not ActiveSheet.PageSetup.PaperSize = xlPaperA4 Then ActiveSheet.PageSetup.PaperSize = xlPaperA4
    
      If Not ActiveSheet.PageSetup.FirstPageNumber = xlAutomatic Then ActiveSheet.PageSetup.FirstPageNumber = xlAutomatic
    
      If Not ActiveSheet.PageSetup.Order = xlDownThenOver Then ActiveSheet.PageSetup.Order = xlDownThenOver
    
      If Not ActiveSheet.PageSetup.BlackAndWhite = False Then ActiveSheet.PageSetup.BlackAndWhite = False
    
      If Not ActiveSheet.PageSetup.Zoom = False Then ActiveSheet.PageSetup.Zoom = False
    
      If Not ActiveSheet.PageSetup.FitToPagesWide = 1 Then ActiveSheet.PageSetup.FitToPagesWide = 1
    
      If Not ActiveSheet.PageSetup.FitToPagesTall = False Then ActiveSheet.PageSetup.FitToPagesTall = False
    
    End Sub

    bringt nicht den gewünschten Erfolg.

    Wie kann ich erreichen, dass wirklich JEDE Seite formatiert wird ?

    Mein erster Versuch war, jedes einzelene Blatt mit diesen Parametern zu "befüllen", was jedoch zu lange dauert (ist ja auch überall zu lesen). Trotz der enormen "Mehrzeit" ist der Erfolg ausgeblieben, so dass ich dann umgestellt habe auf eine vorformatierte Vorlage und dann nur noch die Angaben überprüfe.

    Die evt. Mechanismen müssen abwärtskompatibel sein bis EXCEL 2000 :floet:

  9. Hallo Zusammen ;)

    Ich hab da was, wo ich nicht weiß, ob es hier auch was zu "automatisieren" geht. Suchen in verschiedensten Foren hat mir leider keinen Erfolg gebracht :(

    Es geht um den Ausdruck von Ettiketten unter Word, mit der Serienbrieffunktion.

    Ich hab also ein Dokument, wo mir die Ettiketten alle aufgezeigt werden, und das Dokument ist mit unserer Datenbank verknüpft. Ich bekomme auch alle Daten wie ich sie haben möchte, jedoch die Registratur möchte es etwas anders haben :(

    Im Datensatz besteht die "Bezeichnung" aus 2 Teilen "xxx yyyyyyyyy - Name Vorname". Bisher habe ich immer beides auf das Ettikett gedruckt, nun kommt aber Registratur und sagt, ich möchte nur Name und Vorname dort stehen haben.

    Wie kann ich nun es einrichten, dass mir Word beim "füllen" sofort den ersten Teil der Bezeichnung verschluckt (wie beim Split mit delimiter = "-" und dann das 2. Item)?

    Die zweite Frage ist, wie kann ich Word sagen, dass er nicht links oben anfangen soll (bei einem angefangenem Bogen mit Adressettiketten), sondern bei einem anderem Ettikett.

    Ich habe noch keinen Code, da ich bisher nur die Word-Eigenen Funktionen angewendet habe (Serienbrieffunktion).

    Möchte wenn möglich auch auf Code verzichten, vermute aber, dass es ohne nicht geht ...

    Fals es nicht ohne geht, dann müßte ich wissen, wie ich das Formular (Ettikettenvorlage) am Besten einrichte (Bezeichner der Felder oder ähnliches), damit ich aus dem Code auch auf das richtige Ettikett springe

    Hat da wer was, oder kann helfen?

  10. Hallo zusammen

    diesmal hab ich nen Prob, wo ich nicht weiß, ob es dafür wirklich ne Lösung gibt. Mein Problem:

    Ich habe ein Frame mit verschiedenen Elementen (Label, Picture, Textbox und CommandButton).

    Dieses Auflistung möchte ich nun durchlaufen und jedem dieser Elemente etwas aus der Datenbank zuweisen (außer den Buttons)

    Es gibt also immer ein zusammengehöriges Set bestehend aus ImageBox, Label und TextBox

    Wenn ich nun die Controls durchlaufe ist leider die Reihenfolge leider nicht "sortiert" (siehe unten).

    Wie kann ich nun erreichen, dass die Controls in einer benutzerdefinierten Reihenfolge abgefragt (durchlaufen) werden?

    Ich habe mir die Reihenfolge mal im Direktfenster ausgegeben. Danach habe ich gedacht, ich könnte es mit dem Tabulator ändern, habe jedem Element einen neuen TabIndex gegeben, leider jedoch ohne Änderung der Ausgabe.

    Gibt es einen Weg, die Reihenfolge so zu ändern, dass wenn ich die Controls durchlaufe, ich bei

    lblFoto1 anfange, über imgFoto1 zum txtFoto1Bem komme. Wann die Button kommen ist mir schnurz, die werden eh rausgefiltert beim füllen.

    Der Erfolg soll sein, dass ich nicht bei jedem Control.Element den Courser in der Datenbank neu positionieren muß, sondern erst nach dem eintrag der 3 relevanten Daten.

    Im zweitem Fenster ist der Code aus meinem Projekt

    For Each Element In userform1.frameFotos.Controls() : ? element.name : next
    
    lblFoto1
    
    imgFoto1
    
    cmdFotoVor
    
    cmdFotoZurück
    
    cmdNeuFoto
    
    imgFoto2
    
    imgFoto3
    
    imgFoto4
    
    imgFoto5
    
    imgFoto6
    
    lblFoto5
    
    lblFoto3
    
    lblFoto4
    
    lblFoto6
    
    lblFoto2
    
    txtFoto1Bem
    
    txtFoto2Bem
    
    txtFoto3Bem
    
    txtFoto4Bem
    
    txtFoto5Bem
    
    txtFoto6Bem
    
    
    Private Sub BilderZuweisen()
    
    Dim i As Integer
    
    Dim Label As String
    
    Dim Element As Object
    
      frameFotos.Visible = False
    
      For Each Element In frameFotos.Controls
    
        If Left$(Element.Name, 3) = "img" Then
    
          If Not rstFotos.EOF And Not rstFotos.BOF Then
    
            Element.Picture = LoadPicture(CurrentProject.Path & "\Bilder\" & rstFotos!LinkAdr)
    
            rstFotos.MoveNext
    
          Else
    
            Element.Picture = LoadPicture("")
    
          End If
    
        ElseIf Left$(Element.Name, 3) = "lbl" Then
    
          If Not rstFotos.EOF And Not rstFotos.BOF Then
    
            Element.Caption = rstFotos!Bemerkung
    
            rstFotos.MoveNext
    
          End If
    
        End If
    
      Next
    
    ' Datensatzsteuerung einstellen
    
      If rstFotos.AbsolutePosition > 5 And rstFotos.AbsolutePosition < rstFotos.RecordCount Or rstFotos.BOF Then
    
        cmdFotoVor.Enabled = True
    
      Else
    
        cmdFotoVor.Enabled = False
    
      End If
    
      If rstFotos.AbsolutePosition > 6 Or rstFotos.EOF Then
    
        cmdFotoZurück.Enabled = True
    
      Else
    
        cmdFotoZurück.Enabled = False
    
      End If
    
      frameFotos.Visible = True
    
    
    End Sub

    lblFoto1

    imgFoto1

    txtFoto1Bem

    lblFoto2

    imgFoto2

    txtFoto2Bem

    lblFoto3

    imgFoto3

    txtFoto3Bem

    lblFoto4

    imgFoto4

    txtFoto4Bem

    lblFoto5

    imgFoto5

    txtFoto5Bem

    lblFoto6

    imgFoto6

    txtFoto6Bem

    edith sagt:

    Access Version 2000 (Vers 9 ) mit ExcelForms (also nicht die "StandartForms" aus Access)

  11. dann werden im bios alle parameter auf ein maß gebracht, wo es laufen muß.

    die performance kann erstmal sehr darunter leiden, da auch der speicher (ram) entsprechend langsam angesprochen wird.

    sollte dann der fehler immernoch auftauchen, dann solltest du den rechner wirklich zum "doc" bringen, denn dann liegt da was im sterben, oder ist gar schon gestorben.

    eine weitere fehlerquelle ist auch ein verstopfter Lüfter/Kühler (auch / gerade zwischen kühlrippen). denke da auch die sommertemperaturen wo weniger wärme abgeführt werden kann. jedoch vorsicht bei der reinigung der lüfter (sehr schnell lagerschaden). ich empfehle einen regulierbaren staubsauger, den auf geringste leistung, dann mit einem langhaarigem flachpinsel vorsichtig ausbürsten richtung saugrohr. nicht mit dem saugrohr über den lüfter dass er sich dreht, die drehzahl überlastet schnell mal die lager ;) und dass das alles ohne stecker in der steckdose zu erfolgen hat, denke ich, muß ich hier nicht erwähnen

    das sind dann noch mal nen paar ansatzpunkte für deinen fehler ;)

  12. Also ich finde die Idee mit einem "Erledigt" Vermerk weiterhin Unterstützenswert. Vielleicht sogar noch nen Schritt weiter gehen, und "Punkte" vergeben lassen. Hat die Antwort etwas gebracht oder nicht, oder so ein "Danke" - button oder so.

    Denn dann haben es die Besucher einfacher, die nicht tgl. hier online sind. Einmal sehen sie rel. schnell, wo noch Hilfe benötigt wird (vielleicht ja sogar grad mein Wissen), also senf dazu ... und man sieht auch, wieviel "sternchen" der Antworter schon hat, und weiß dadurch seine Aussage entsprechend einzustufen

    Nun die Kehrseite

    Wahne viel Anpassung an der Forumssoftware, oder evt. gar Neuanschaffung.

    Ich denke eher daran an die lieben Leute da draußen, die aus Langeweile, oder Prüfungsstress nen Projekt suchen ... macht doch ne Anpassung für dieses Forum hier ;) (kleinen aufruf startet :) )

  13. ja, aber ....

    ich nutze nicht das Form aus Access, sondern aus der VBA-Libary. Warum ?

    Ich habe ein Form mit Excel erstellt. Dieses Form habe ich dann unter Access importiert. Mit dem Trugschluß, dass die Steuerelemente sich identisch verhalten. Wie ich nun feststellen muß, ist dies nicht der Fall.

    Eine ListBox in einem importierem Excel-VBA-Form verhält sich anders, als das Access interne Steuerelement.

    Das Access-Steuerelement kann ich jedoch nicht auf dem importiertem Form editieren.

    Warum nutze ich nicht das Access eigene Form ?

    In meiner Ausbildung habe ich VB6 gelernt, und danach auch einige Anwendungen drin geschrieben, und mich daran gewöhnt. Da fiel mir der Umstieg nach VBA mit Office nicht schwer. Aber als ich dann die Forms von Access mir angeschaut habe, habe ich sehr viel vermisst, was ich unter VB/VBA so eigentlich mit meinen Daten machen kann ... Gerade in hinsicht auf Gestaltung der Oberfläche.

    Sicherlich kann mach auch mit den Access-Forms wunderebare Sachen machen, aber dafür muß ich mir es dann erstmal richtig anschauen, und kann das nicht mal adHook machen.

    Wenn es mir sonst alles zuviel wird, mach ich ne DDE mit Excel auf, und lass dort die Forms rennen (oder spricht etwas aus irgendeiner Erfahrung dagegen?)

  14. Mit einer Fehlerbeschreibung wie "muckt auf" ist die Diagnose einigermaßen schwierig.

    Fehler 13: Typen unverträglich ist das Ergebnis, nur das hilft auch absolut nicht weiter ...

    Er will an dieser Stelle nen String

    hier mal der lange auszug aus der Hilfe:

    RowSourceType-, RowSource-Eigenschaften (Herkunftstyp, Datensatzherkunft)
    
    
    
    Sie können die Eigenschaften RowSourceType und RowSource zusammen verwenden, um Microsoft Access mitzuteilen, wie Daten für ein Listenfeld, ein Kombinationsfeld oder ein ungebundenes OLE-Objekt (z.B. ein Diagramm) bereitgestellt werden sollen. Wenn Sie z.B. in einem Listenfeld Datenzeilen anzeigen möchten, die aus einer Abfrage namens Kundenliste stammen, stellen Sie die Eigenschaft RowSourceType des Listenfelds auf Tabelle/Abfrage und dessen Eigenschaft RowSource auf die Abfrage namens Kundenliste ein.
    
    
    Einstellung
    
    
    Die Eigenschaft RowSourceType hat die folgenden Einstellungen.
    
    
    Einstellung Beschreibung 
    
    Tabelle/Abfrage (Standardeinstellung) Die Daten stammen aus einer Tabelle, Abfrage oder SQL-Anweisung, die von der Einstellung der Eigenschaft RowSource festgelegt wurde. 
    
    Wertliste Die Daten entsprechen einer Liste von Einträgen, die von der Einstellung der Eigenschaft RowSource festgelegt wurden. 
    
    Feldliste Die Daten entsprechen einer Liste von Feldnamen einer Tabelle, Abfrage oder SQL-Anweisung, die von der Einstellung der Eigenschaft RowSource festgelegt wurde. 
    
    
    
    Anmerkung   Sie können die Eigenschaft RowSource auch mit einer benutzerdefinierten Funktion einstellen. Der Funktionsname wird ohne vorstehendes Gleichheitszeichen (=) und ohne nachfolgendes Klammernpaar eingegeben. Geben Sie bestimmte Code-Argumente der Funktion an, um Microsoft Access mitzuteilen, wie das Steuerelement gefüllt werden soll.
    
    
    Die Einstellung der Eigenschaft RowSource ist abhängig von der Einstellung der Eigenschaft RowSourceType.
    
    
    Einstellung von RowSourceType Zugehörige Einstellung von RowSource 
    
    Tabelle/Abfrage Der Name einer Tabelle bzw. einer Abfrage oder eine SQL-Anweisung. 
    
    Wertliste Eine Liste von Einträgen mit Semikolons ( als Trennzeichen. 
    
    Feldliste Der Name einer Tabelle bzw. einer Abfrage oder eine SQL-Anweisung. 
    
    
    
    Anmerkung   Wird die Eigenschaft RowSourceType auf eine benutzerdefinierte Funktion eingestellt, dann kann die Eigenschaft RowSource leer gelassen werden.
    
    
    Sie können die Eigenschaften RowSourceType und RowSource im Eigenschaftenfenster des Steuerelements, in einem Makro oder in Visual Basic einstellen.
    
    
    Für solche Felder, deren Eigenschaft DisplayControl auf Kombinationsfeld oder Listenfeld eingestellt ist, können Sie diese Eigenschaft für Tabellenfelder in der Tabellenentwurfsansicht auf der Registerkarte Nachschlagen im Bereich Feldeigenschaften einstellen.
    
    
    Anmerkung   Microsoft Access stellt diese Eigenschaft automatisch ein, wenn Sie in der Tabellenentwurfsansicht Nachschlage-Assistent als Datentyp für ein Feld auswählen.
    
    
    Stellen Sie in Visual Basic die Eigenschaft RowSourceType unter Verwendung eines Zeichenfolgenausdrucks auf einen der folgenden Werte ein: "Table/Query", "Value List" oder "Field List". Sie können einen Zeichenfolgenausdruck auch verwenden, um den Wert der Eigenschaft RowSource einzustellen. Sie stellen die Eigenschaft RowSourceType auf eine benutzerdefinierte Funktion ein, indem Sie den Namen der Funktion eingeben.
    
    
    Anmerkung
    
    
    Verfügen Sie über eine begrenzte Anzahl an Werten, die sich nicht ändern, so können Sie die Eigenschaft RowSourceType auf Wertliste einstellen und dann die Werte eingeben, die in der Liste in der Eigenschaft RowSource enthalten sind.
    
    
    Wenn Sie eine benutzerdefinierte Funktion erstellen, um Elemente in ein Listenfeld oder Kombinationsfeld einzufügen, ruft Microsoft Access die Funktion mehrmals auf, um die benötigten Informationen zu erhalten. Benutzerdefinierte Funktionen für RowSourceType werden in einem ganz bestimmten Funktionsformat geschrieben.
    
    [/code]

    naja und dort steht halt, es soll auch mit nen SQL-Befehl gehen

    ich bin dann aber nun mal wech ... koffer packen und dann nach hause ... werde mich dort weiter dran setzen, vllt kommt mir ja dort die Eingebung :eek

  15. Ich hab in der Online-hilfe lokal gesucht, jedoch steht dort so ziemlich das gleiche wie auf der MSDN Seite.

    Jedoch muckt Access2000 schon auf, wenn ich:

    lstMaterial.RowSourceType = "Table/Query"
    
    

    mache.

    ich denke das liegt an den verschiedenen klassen :/

    access hat ja etwas andere klassen als VB6 oder VBA für die controlls.

    Gleiche ist ja auch bei textfeldern ... in VB6 geb ich nen RecordSource, und hab die Dinger gebunden, jedoch unter Access muß ich das ja alles zu fuß machen ...

    Breche mir grad die Ohren, aber ich denke ich werde es auf die Klassische machen ...

    For ... additem/list() ... next

    muß nur mal sehen wie ich es dann mit dem Zeiger in der DB mache ... oder ich mach nen clone oder sowas ...

    und danke für die schnelle reaktion

    ps:

    wenn ich das Formular nach Excel packe, und dort die Daten in ein Tabellenblatt schreibe, dann kann ich dieses mit

    RowSource = "A1 : D5"
    deklarieren ... aber ich will doch nun garnicht eine Excelinstanz öffnen um dieses Feature nutzen zu können ^^
  16. Hallo Zusammen,

    Ich hab nen Problem mit VBA unter Access.

    In einem Formular, was ich in Excel erstellt, und dann im Access importiert habe gibt es viele Stuerelemente.

    Ich kann auch sämtliche Steuerlemente füllen (von hand), nur bei der Listbox habe ich auf die Hilfe vertraut, denn die sagt ja aus, eine Listbox kann auch mit Recordsets umgehen (wie in VB6 ja schließlich auch)

    Mein Recordset wie wie folgt gefüllt:

    Set rstAufschuettung = db.OpenRecordset("SELECT MatArt.Beschreibung, Materialaufschuettung.Herkunft, MatQualität.Qualität, Materialaufschuettung.Bemerkung FROM MatQualität INNER JOIN (MatArt INNER JOIN (Maßnahme INNER JOIN Materialaufschuettung ON Maßnahme.StandortID = Materialaufschuettung.StandortID) ON MatArt.MaterialID = Materialaufschuettung.MaterialID) ON MatQualität.MatQualität = Materialaufschuettung.QualitätID WHERE ((Materialaufschuettung.StandortID)= " & rstMaßnahme!StandortID & " )", dbOpenDynaset, dbReadOnly)
    
    
    sämtliche Datenfelder des Recordsets sind Text nur Bemerkung ist ein Memo-Feld hier stelle ich die Anzahl der Spalten ja ein:
    lstMaterial.ColumnCount = rstAufschuettung.Fields.Count
    
    
    und hier möchte ich eigentlich gerne meiner ListBox nun dieses Recordset übergeben:
    lstMaterial.RowSource = rstAufschuettung
    
    
    kommt verständlicherweise "Typen unverträglich"
    lstMaterial.RowSource = "rstAufschuettung"
    
    

    hier kommt Fehler 380: Eigenschaft RowSource konnte nicht gesetzt werden. Üngültiger Eigenschaftswert

    zitat Hilfe:

    Gibt die Quelle an, die eine Liste für ein Kombinationsfeld-Steuerelement (ComboBox) oder Listenfeld-Steuerelement (ListBox) zur Verfügung stellt.

    Syntax

    object.RowSource [= String]

    Die Syntax für die RowSource-Eigenschaft besteht aus folgenden Teilen:

    Teil Beschreibung

    object Erforderlich. Ein gültiges Objekt.

    String Optional. Die Quelle der Liste für das Kombinationsfeld-Steuerelement oder das Listenfeld-Steuerelement.

    nur frage ich mich nun, welcher Eigenschaftswert ungültig ist :/

    Weiß jemand Rat ?

    Verwendet wird Access 2000, die Verweise sind als Anhang mit aufgeführt

    post-63538-14430448799844_thumb.png

  17. Nach einigem Suchen bin ich auf was gestoßen.

    In einem Buch aus dem Hause Sybex habe ich das "Form_Current()" gefunden, und auch mal in dem Code eingebaut, und es funktioniert auch (wenigstens erstmal in diesem kleinem Versuch).

    Sollte es eine "schönere" Möglichkeit geben, so bin ich für Anregungen immer dankbar.

  18. Hallo zusammen,

    ich versuche soeben in einem kleinem Übungsform etwas mehr über die Bindung des Steuerelementes für den Datanbankcursor zu verstehen.

    In der Anlage habe ich das Formular abgebildet.

    Die Tabelle enthält nur 2 Felder:

    • Autonummer (Zahl)
    • Bildadresse als Link (Text)

    Das Formular wurde mittels Designer erstellt, wobei die Picturebox anschließend manuel hinzugefügt wurde.

    Nun habe ich beim einfachen durchblättern der Datenbank keine Probleme, dafür nutze ich das "Exit" der BildNr. Nur wenn ich den Focus der Coursersteuerleiste verlasse, um z.B. durch Klick auf den Link, mir das Foto in groß anzuschauen, klappt diese Lösung nicht mehr mit dem "Exit"

    Gibt es eine Möglichkeit, dieses Steuerelement, was der Assi von Access dort einfügt, abzufangen, also die Aktionen selbstverständlich.

    Mein Gedanke war, das "Moving" der Datensätze abzufangen.

    Hat da wer nen Vorschlag?

    achso .. folgenden Code habe ich bisher verwendet:

    Private Sub BildNr_Exit(Cancel As Integer)
    
    
      If Not IsNull(LinkAdr) Then
    
        Bild5.Picture = Right(Left(LinkAdr, Len(LinkAdr) - 1), Len(LinkAdr) - 2)
    
        Debug.Print Bild5.Picture, "Exit"
    
      Else
    
        Bild5.Picture = ""
    
      End If
    
    
    End Sub
    
    

    [EDIT]

    Es handelt sich um Access 2000 auf einer XP Umgebung

    [/EDIT]

    post-63538-14430448622788_thumb.png

  19. Um das C in VB zu übersetzen muß man wirklich nicht lange überlegen ...

    Jedoch verstehe ich nicht, was das ganze soll ^^

    Ich übersetze den C-Code, habe dann aber dennoch nicht die Funktion, die Deine Biblio aufruft, somit kann ich NICHT darstellen, dass es bei VB nicht geht, denn auch in VB kann man die Variable so füllen, dass es als mehrdimonisales Array fungiert, und man auch auf die einzelnen Elemente, oder aber als ganze Zeile (jedenfalls haben wir das damals so gelernt ^^)

    noch suspekter ist es, wenn der Studienkollege mit den Skripts Dir nicht mehr zur Verfügung steht, und Dir keinerlei Support geben kann ... okay .. im Text hört sich das auch eher an wie "Ich hab da was gefunden, dass habe ich mal ausprobiert, bin jedoch mangels Dokumention des Programmiers einmal über den zugefrorenen Wannsee geschlittert, bis ich in ein Loch gefallen bin"

    und nun wird jemand mit der Rettungsleiter gesucht ^^

  20. *kopfschüttel*

    wo findet denn bitte

    Warum deklarierst du KWz als Integer und versucht dann eine Stringverkettung zuzuweisen?

    das habe ich nachher auch gemerkt, dass ich da total den fehler begann...

    aber mit string geht das auch noch nicht.

    derzeitiger code ist wie in meinem letztne post, nur statt integer string.

    meckert bei "KWz = "KW " & KWz"

    die berücksichtigung in deinem code ? ...

  21. Hallo zusammen :)

    Gerade wurde mir eine Frage über die Darstellung von Daten in einem Chart gestellt.

    Es liegen folgende Daten vor:

    Bieter	Start	Ende	Beginn		Stop
    
    Name1	10000	15000	10.01.2009	14.01.2009
    
    Name2	12000	22000	12.01.2009	28.01.2009
    
    Name3	18000	30000	29.01.2009	22.02.2009
    
    

    Als Darstellung soll gewählt werden, dass auf der X-Achse der Verlauf über die Zeit dargestellt wird. Wobei die Balkenstärke die Anzahl der Tage entspricht.

    Die Höhe der Balken soll darstellen wo ein Betrag beginnt, und wo er Endet

    So sollte das Diagramm idealerweise soviele Balken wie Bieter (im Beispiel = 3) besitzen, deren Höhe anzeigt, wer wo angefangen und wer wo aufgehört hat.

    Sollte die Darstellung in einer anderen Ansichtsform (ausser Balken) besser geeignet sein, nehme ich gerne an ;)

    Mit Excel - Diagrammen habe ich nur damals in der Schule / Ausbildung etwas rudimentär zu tun gehabt.

    grüssele

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...