Zum Inhalt springen

lexl

Mitglieder
  • Gesamte Inhalte

    21
  • Benutzer seit

  • Letzter Besuch

Beiträge von lexl

  1. Hallo,

    ich habe mein Projekt nun soweit abgeschlossen und will mich nun an den Projektbericht für die IHK (Villingen-Schwenningen) wagen. Nun ist mir aber nicht ganz klar, ob der Projektbericht in den 70 Stunden, äußerhalb oder mitten drin (also einen Teil außerhalb der 70 Stunden und einen Teil innerhalb der 70) geschrieben werden muss.

    Kann mir bei der Frage evtl. jemand weiter helfen?

    Gruß, lexl

  2. Precision als Long gibt es... Dort steht generell 15 drin. Allerdings kann ich den Wert auch mit meinem Provider "Microsoft.Jet.OLEDB.4.0" nicht ändern. Meint zumindest VB.

    In den Properties finde ich leider nichts was danach ausschaut.

    Wozu könnte denn der folgende Code gehören, ADO ist nicht, könnte es DAO sein?

    
    Db.TableDefs("Tabelle").Fields("Name").Properties("Decimals") = 2
    
    

  3. Gut, ich gebe zu, das Beispiel war ein wenig schlecht gewählt. Dann sagen wir halt mal es gibt einen Feld mit Datentyp Double.

    Eine Verbindung mit der MDB habe ich über ADO erstellt.

    Mit nachfolgendem Code versucht die Dezimalstellenanzeige zu setzten, leider ohne Erfolg...

      
    
       Set m_oCat.ActiveConnection = m_oCn
    
       Set m_oTbl = m_oCat.Tables(strTableName)
    
       Set m_oCol = m_oTbl.Columns(strColumnName)
    
    
       m_oCol.Properties("DecimalPlaces") = 2   
    
    

    Die Properties von m_oCol (DecimalPlaces) scheinen falsch zu sein. (Den String DecimalPlaces hatte von vbarchiv.net)

  4. Hallo,

    ich suche nach einer Möglichkeit die Dezimalstellenanzeige beim Felddatentyp Long Integer per VB Programm zu setzten. Dies sollte wohl über ADO(X) gehen. Nur stehe ich vor dem Problem das ich nicht genau weiß mit welcher Methode der ADOX Klasse zu machen ist bzw. welchen Sting ich hier benötige...

    Gruß lexl

  5. Hallo,

    ich würde gerne bei einigen Spalten einer Access Datenbank über ADOX die Unicode Kompression an/bzw abschalten...

    Im Netz finde nur Codeschnipsel zu DAO, dies kann ich aber leider nicht verwenden. Es muss unbedingt ADO an dieser stelle eingesetzt werden.

    Kennt jemand hierfür eine Lösung?

    Gruß, lexl

  6. VisualBasic 6 (SP6)

    - Microsoft Jet and Replication Objects 2.6 Library

    - Microsoft ActiveX Data Objects 2.8 Library

    - Microsoft ADO Ext. 2.8 for DDL and Security

    Access 2002 (SP2)

    Windows XP (SP2)

    PS.:

    Hab's gerade geschaft das ich auch existierende Felder ändern kann:

    
       Call OpenCn(strDbPathName)
    
    
       Set m_oCat.ActiveConnection = m_oCn
    
       Set m_oTbl = m_oCat.Tables(strTableName)
    
       Set m_oCol = m_oTbl.Columns(strColumnName)
    
       m_oCol.Properties("Default") = strDefaultValue
    
       m_oTbl.Columns.Refresh
    
    
       Call CloseCn

  7. Es kam ne Fehlermeldung, das der Typ nicht stimmt, das habe ich aber mittlerweile beheben können.

    Nun habe ich aber was neues :rolleyes:

    Und zwar, habe ich nun (siehe folgenden Code) einen Standartwert über ADOX setzten können. Dies funktioniert allerdings so wie es jetzt zu sehen ist nur wenn die entsprechende Tabelle noch nicht existiert.

    Jetzt bräuchte ich praktisch genau das selbe, nur sollte es auch gehen wenn die Spalte bereits existiert. Bei dem jetzigen Code bekomme ich noch folgende Fehlermeldung:

    "Feld kann nur einmal definiert werden!"

    
    ...
    
       '--- Verbindung zur Datebbank herstellen
    
       Call OpenCn(strDbPathName)
    
    
       '--- Verbindung dem ADOX.Catalog zuweisen
    
       m_oCat.ActiveConnection = m_oCn
    
    
       '--- Standardwert und Spaltenname setzten   
    
       With m_oCol
    
          Set .ParentCatalog = m_oCat
    
          .Name = strColumnName
    
          .Properties("Default") = strDefaultValue
    
       End With
    
    
       '--- Spalte erstellen mit DefaultValue
    
       m_oCat.Tables(strTableName).Columns.Append m_oCol
    
    
       Call CloseCn
    
    ...
    
    Private Sub OpenCn(ByVal strDbPathName)
    
       m_oCn.Provider = "Microsoft.Jet.OLEDB.4.0"
    
       m_oCn.ConnectionString = strDbPathName
    
       m_oCn.Mode = adModeReadWrite
    
       Call m_oCn.Open
    
    End Sub
    
    ...
    
    

  8. Danke für deine hilfe, allerdings bringt mich das noch nicht ganz so arg weit, leider. Habe mal mit ADO immerhin geschaft eine neue Tabelle zu erzeugen, gar kein Problem. Nur weiß ich nicht so recht, wie ich den Befehl von dir genau umsetzten soll, habe das ganze mal bisher so probiert, allerdings funktioniert das nicht...:

    strDbPathName = txtDbPathName.Text
    
    Private m_oCn As New ADODB.Connection
    
    Private m_oTbl As New ADOX.Table
    
    -----------------------------------------------------------------
    
    ...
    
       strTableName = txtDefaultTableName.Text
    
       strColumnName = txtDefaultColumnName.Text
    
       strDefaultValue = txtDefaultValue.Text
    
    
       Call OpenCn(strDbPathName)
    
    
       m_oTbl.Name = strTableName
    
       Call m_oTbl.Columns.Append(strColumnName, adChar, strDefaultValue)
    
    ...
    
    

  9. "DEFAULT" (und eigentlich alles als SQL-92) wird von access nicht unterstützt.

    du kannst es nur mit ADO versuchen. die mögliche ddl-syntax, die unterstützt wird, ist folgende:

    Du meinst, bei ner ADO und Jet Connection, über

    Cn.execute("SQL Command")

    oder, muss das dann anderst ausgeführt werden, damit es klappt?

    Frage deshalb, da hierrüber eh alle meine Befehle laufen. Das ganze schaut so aus, das man mehrere Scripts hat (z.B. Data und Table - Mit data.sql sollen Daten verändert und mit table.sql werden tabellen beispielsweise erstellt werden) die hintereinander abgerufen werden über ein Programm welöches in VB6 geschrieben wurde. Und dieses Programm geht dann jeden Befehl Schritt für Schritt durch, bis es am Ende ist.

  10. meinedb.execute "ALTER TABLE meinetabelle DROP CONSTRAINT meinprimaeroderfremdschluessel"

    Habe deinen Tipp gerade ausprobiert, leider funktioniert er nur nicht ganz.

    Access bringt mir folgende Fehlermeldung:

    CHECK-Einschränkung <Name> nicht vorhanden. (Fehler 3755)

    Leider sagt mir das garnichts, und auch die MS Access Hilfe bringt mich hier auch nicht sonderlich arg weiter...

  11. Geht anscheinend auch nicht wirklich, habe auf meiner Suche nur was für Oracle und andere gefunden, dort gibt es RENAME.

    Habe im Netz jetzt die Alternative gefunden, in der man eine neue Spalte erstellt, alle Werte von der alten Splate kopiert um dann die alte Spalte zu löschen.

    
    ALTER TABLE tabellen_name ADD COLUMN spalte_neu CHAR(50);
    
    UPDATE tabellen_name SET spalte_neu = spalte_alt;
    
    ALTER TABLE tabellen_name DROP COLUMN spalte_alt;
    
    

    Damit würde es gehen - wenn ich noch wüsste, wie ich mit SQL einen PRIMARY KEY löschen kann.

  12. Hallo,

    ich kenn mich in SQL noch nicht ganz so gut aus. Jetzt steh ich leider vor einem kleinen Problem.

    Ich habe eine Access Datenbank. Diese hat Beispielsweise eine Tabelle und in der Tabelle befinden sich einige Spalten mit Daten. Jetzt würde ich gerne einen Spaltennamen ändern. (Beispielsweise von SpalteA in SpalteA1)

    klar, mit der Oberfläche von Access könnte man den Namen ändern, aber das ganze sollte ohne Access auch funktionieren und hier ist mein Problem. Mir fehlt hierzu der entsprechende SQL Befehl, habe im Netz auch noch nichts passendes finden können.

    mfg

  13. Und, was sagt glaskugel so? :rolleyes:

    Datenbank ist vorzugsweise Access. Meine verbindung zur Datenbank selbst habe ich mit ADODB gelöst mit (Verweis: Microsoft ActiveX Data Objects 2.8 Library) ADODB.Connection und ADODB.Recordset

     
    
    Dim Cn As New ADODB.Connection
    
    Dim rs As New ADODB.Recordset
    
    
    Cn.Provider = "Microsoft.Jet.OLEDB.4.0"
    
    Cn.ConnectionString = "C:\Template.mdb" 
    
    Cn.Mode = adModeReadWrite
    
    Call Cn.Open   
    
    rs.ActiveConnection = Cn
    
    

    Was mir auch schon gelungen ist, ist mit Execute Abfragen durchzuführen (Tabellen erzeugen, Tabellen löschen,... das funktioniert einwandfrei!).

    Nur stehe ich eben vor dem Problem, das ich nicht im geringsten weiß, wie ich genau an das Ergebnis meiner Abfrage gelange wenn es, wie in diesem Fall ein bestimmter Wert ist, den ich aus der Datenbank benötige.

    Habe hierzu auch im Netz nicht wirklich was bruachbares finden können...

    Hoff, du weißt jetzt ein wenig mehr über mein Problem...

  14. Hallo,

    ich suche nach einer Möglichkeit einen bestimmten Wert aus einer Datenbank in eine Variable zu 'speichern'.

    Die entsprechende SQL Abfrage (SELECT value FROM version_info WHERE key = 'DbVersionBMinor';) habe ich, das ist nicht das Problem. Leider harpert es noch ein wenig an der umsetztung in einem VB Projekt. :(

    Weiß vielleicht jemand wie das ganze funktionier?

    Gruß, lexl

  15. Hallo,

    habe gerade ein batch script geschriebn, welches einen bestimmten wert eines registry schlüssels ausließt. nachdem die ganze arbeit verrichtet worden ist, soll der wert des schlüssels um 1 erhöht werden.

    das cmd file liegt auf einem server.

    das problem ist jetzt folgendes, wenn dieses script aufgerufen wird, funktioniert es auf rechner A richtig. es ließt den wert aus der registry, läd ein paar files vom server, installiert anschließend ein update und setzt den registry um 1 nach oben.

    wenn man wenn man das ganze jetzt auf rechner B ausführt (unter gleichem benutzer, mit gleichen rechten) läuft alles ähnlich ab, nur beim setzten des neuen werts in der registry, dort kommt der fehler zugriff verweigert.

    das ganze wird mit folgendem befehl gemacht:

    reg add HKLM\Software\OOo\ /v Version /t REG_SZ /d 07 /f

    jetzt die frage, woran kann das liegen? wenn ich die zeile aus dem script rausnehme und in die eingabeaufforderung von xp eintippe, funktioniert es auf an rechner B. aber da später endbenutzter mit dem programm arbeiten sollte das ganze so einfach wie möglich sein.

    gruß alex

  16. Hallo,

    ich suche eine möglichkeit eine bestimmte abhängigkeit in einer batch datei zu überprüfen. diese sollte, sich ähnlich verhalten wie das exeption handling in java. erst prüfen ob etwas geht, geht es nicht, dann mache das und das.

    gibt es soetwas auch für cmd skripte?

    mfg alex

  17. Hallo,

    ich habe mal eine frage wie kann man Gleitkommazahlen auf 2, oder 3 (...) Nachkommastellen kürzen.

    Ich suche nach einer kürzeren Variante wie die, die wir in SAE auf der Berufsschule durchgenommen haben.

    public class Nachkommastellen

    {

    public static void main(String[] args)

    {

    //Variable

    float fZahl1 = 1;

    float fZahl2 = 2;

    float fErgebnis;

    int iErgebnis;

    //Berchnung

    fErgebnis = fZahl1 / fZahl2;

    iErgebnis = (int)(fErgebnis * 100);

    fErgebnis = iErgebnis / 100.;

    //Ausgabe

    System.out.println("Ergebnis: " + iErgebnis);

    }

    }

    Die Möglichkeit das ganze über die Methode round() der Klasse Math zu machen...

    myDouble = Math.round( myDouble * 100. ) / 100.;

    .. will unsere Lehrerin nicht haben da sie keine gerundeten Werte haben will.

    Aber gibt es denn nicht auch eine Möglichkeit Gleitkommazahlen über eine bestimmte Methode zu kürzen?

    Wäre für jede Hilfe dankbar...

    MFG

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...