Προς το περιεχόμενο

Ερωτήσεις για Visual Basic


Star_Light

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Πως βρίσκουμε το εκτελέσιμο που έχουμε δημιουργήσει στην VB

 

http://www.youtube.com/watch?v=7vJhPvtTgQg

 

υ.γ Σε περίπτωση που το αρχειο εισόδου ειναι MS Powerpoint 2003 θα υπάρξει μεγάλο θέμα?

ή θα προσθέσω παλι κάποια Reference απο το Visual Studio ?

 

υ.γ2 Αν και η παραμετρος msoTrue ειναι για readOnly εγω οταν το ανοιγω το αρχειακι μπορω να το τροποποιήσω κιολας αλλα να το αποθηκευσω με διαφορετικο ονομα και οχι με το ιδιο... μαλλον αυτο ειναι ε?

Επεξ/σία από Star_Light
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 98
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

To video που εβαλες το ειδες; Δειχνει το εκτελεσιμο στο 2:33

 

Για τα αλλα δεν εχω ιδεα, δοκιμασε. Αυτο κανω παντα

 

hahaha ρε συ

μα για αυτο το εβαλα για να το δουν και αλλοι οχι μονο εγω.....

Απλα βρηκα κατι και ειπα να το μοιραστω... πειραζει?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 4 εβδομάδες αργότερα...
Δημοσ. (επεξεργασμένο)

Σημερα που έχω λιγο χρονο έψαξα και βρηκα για τα ADO objects.

Μπορεις να κάνεις συνδεση μεσω αυτων του Powerpoint που θα δινεται καθε φορα

με το αρχείο της βάσης δεδομένων ? Και μετα αντιγραφη καποιων πεδιων απο το ppt στην βαση?

ή το μπλεκω χωρις να χρειαζεται???? ψαχνω στο ιντερνετ να βρω ετοιμο κωδικα να τον παρω και δεν βρισκω τιποτα ελεος. Δεν ξερω και τι να ψαξω.... βαζω "Copy elements from ppt to access database with VB" αλλα τζιφος.

 

Εχει ασχοληθει κανεις με την γλωσσα? και να θελει οντως να βοηθησει? Δεν εχω πολυ χρονο για να μαθω VB τωρα....

και ετοιμο κωδικα να επαιρνα δεν θα με χαλουσε και βοηθαω μετα στην C καποιον αμα θελει

και χρειαζεται. (με έτοιμο κωδικα εννοειται)

Επεξ/σία από Star_Light
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Βρήκα αυτον τον κώδικα αλλα ειναι απο excel σε access . Θα δοκιμασω να τον φτιάξω και μονος μου μονο το book.xls πρεπει να αλλάξω ??? Και το cTarget διπλα απο το IN μεσα στην With.... End With θα ειναι το ονομα του αρχειου που θα δινει ο χρηστης??? αν ξέρει κανεις ή εχει καμια ιδεα ας την ριξει. Πως μπορει να γινει η τροποποιηση με βαση το αρχειο που εχω δωσει εδω.

 

http://www.vb-helper...o_access_2.html

 

φαινεται ωραιο το σαιτ παντως αν θελει κανεις καναν κωδικα απο εκει έχει κάποιους.

ΑΝ τωρα το φυλλο ηταν excel και οχι powerpoint θα ειχα ηδη καβατζωθει !!!!!!!!!!

Επεξ/σία από Star_Light
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Παραλλάσσοντας τον παλαιότερο κώδικα που καναμε παραπάνω

Παιρνω τα data από το table στο ppt και τα τοποθετώ στο table MyTable στο test1.mdb (το οποιο φυσικα πρεπει να προυπάρχει, και το αρχείο και το table ε). Μιλάμε μονο για inserts, αν θέλεις updates πρεπει να το προσαρμόσεις

Ισως χρειαστει να αλλάξεις τον provider σε Microsoft.Jet.OLEDB.4.0; αναλογα την εκδοση access που έχεις. Επίσης, ίσως κάποιος πιο εμπειρος σε αυτα να εχει να μας δειξει κανενα πιο elegant τρόπο με datasets και τέτοια..Επίσης, δε ξέρω αν είναι με κάποιο τρόπο εφικτό να γίνουν όλα τα inserts με μια εντολη και οχι ενα-ενα, δοκιμασα να τα βάλω όλα στο query αλλα κλωτσούσε και δεν εχω καθολου χρόνο να το ψαξω παραπάνω.

 

 

>
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Core.MsoTriState
Imports Microsoft.Office.Interop.PowerPoint
Imports System.Data.OleDb
Module Module1
   Sub Main()
    ' Open the presentation
    Dim myApp = New PowerPoint.Application()
    myApp.Visible = msoTrue
    Dim MyPresentation = myApp.Presentations.Open("c:\tmp\Trials.pptx", msoTrue, msoTrue, True)
    ' get the first slide
    Dim MyFirstSlide = MyPresentation.Slides(1)
    Dim sqlQueries As New ArrayList
   
    For i = 1 To MyFirstSlide.Shapes.Item(1).Table.Rows.Count
	    Dim row = MyFirstSlide.Shapes.Item(1).Table.Rows.Item(i)
	    'Get desired values from ppt table
	    Dim firstColVal = row.Cells(1).Shape.TextFrame.TextRange.Text.Trim()
	    Dim secondColVal = row.Cells(2).Shape.TextFrame.TextRange.Text.Trim()
	    'Build the sql insert command for the db
	    sqlQueries.Add("INSERT INTO MyTable (Column1, Column2) VALUES ('" & firstColVal & "','" & secondColVal & "')")
	   
    Next
    ' close presentation
    MyPresentation.Close()

    'MSAccess stuff
    'Open connection to db
    Dim connection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;data source= C:\tmp\test1.mdb")
    connection.Open()
    'Perform each query one-by-one
    For Each query In sqlQueries
	    Dim cmd = New OleDbCommand(query, connection)
	    Dim icount = cmd.ExecuteNonQuery
    Next
    'Close connection
    connection.Close()

   End Sub
End Module

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Η With.... End With απο οσο διαβασα λιγο χθες εκτελει statements σε ενα καθορισμενο αντικειμενο χωρις καθε φορα να προσδιοριζεις το ονομα του αντικειμενου και πολλαπλες φορες. Το update θα γινεται με την μορφη της αντιγραφης καθε φορα που θα ανοιγει το αρχειο αρα δεν εχουμε νομιζω θεμα σε αυτο (χωρις να ειμαι ενημερος ακομη για τον ρολο της sql add που βαζεις ) . Εψαξα και εγω και δεν βρηκα καποια built - in συναρτηση που να αντιγράφει απο το ενα στο αλλο στην Visual basic και για την συγκεκριμενη δουλεια που την θελουμε δηλαδη . Mετα σκεφτηκα την Sql.

 

Τελοςπαντων θα δω τον κωδικα σου θα δω και αυτον που βρηκα εγω γιατι μολις τελειωσα απο την υπηρεσια

και θα τα πουμε . Ευχαριστω πολυ για τον χρονο σου. :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τον έτρεξα αλλα μου "σκαει" . Τον δικο σου εννοω....

υποψιαζομαι ομως πως αυτο γινεται επειδη εδω ->

 

>
sqlQueries.Add("INSERT INTO MyTable(Column1 , Column2) VALUES(' " &firstColVal & " ' , ' " & secondColVal & " ' ) ")

 

δεν έχω ονοματισει τoν πινακα MyTable ουτε και τα Column1 , Column2 το προβλημα ετσι οπως εχω φτιαξει ομως το αρχειο ppt δοκιμων δεν εχω δωσει καποια ονομασια στον πινακα απλα εχω βάλει στοιχεια μεσα στις στηλες 2 έχω κανει ολες και ολες... το θυμασαι το αρχειο ή να τοι ανεβασω ξανα? σε αυτη τη περιπτωση τι μπορουμε να κανουμε? Θα διαβασω και αυριο την τεκμηριωση και θα δω και κανα παραδειγμα στην γραμμη πανω που δινεις.

 

Το αλλο αρχειο δοκιμων της database που και αυτο το εχω φτιαξει ειναι Access 2007.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αγαπητό Άστρο_Διαίτης

 

δεν έχω ονοματισει τoν πινακα MyTable ουτε και τα Column1 , Column2

...οποτε αντικαθιστας στο INSERT command ονοματα που έχεις δώσει, εγω σαν παραδειγμα το εδωσα. Φυσικα και πρεπει να το αλλαξεις ωστε να παιζει με τα δικα σου, δε ξερω πως ειναι το access αρχειο σου.

 

BTW θεωρησα (για καποιο περιεργο λογο, ισως γιατι το θεωρω must) πως ξερεις SQL. Τα sql commands στη βασικη τους μορφη ειναι database agnostic, παιζουν σε ολες τις βασεις το ίδιο, δεν ειναι δηλαδη συγκεγριμενη εντολη για access. Στη περιπτωση μας, η εντολη INSERT βαζει νεα εγγραφη στη βαση (δηλαδη νεα γραμμη στον πινακα). Περισσότερα Link.png Site: εδω και τον γουγλη.

 

το προβλημα ετσι οπως εχω φτιαξει ομως το αρχειο ppt δοκιμων δεν εχω δωσει καποια ονομασια στον πινακα απλα εχω βάλει στοιχεια μεσα στις στηλες 2 έχω κανει ολες και ολες...

ναι, οταν φτιαχνεις νεο αρχειο access, υπαρχει by default ενας νεος πινακας με 2 στήλες, η μια ειναι ID και η αλλη κατι άλλο.... Σε μένα αυτος ο πινακας έχει το προεπιλεγμενο ονομα Table1 που εγω το αλλαξα σε MyTable (αν και ενοιωσα μια εντονη εσωτερικη παρόρμηση να το ονομασω Trapezaki, τρεχα γυρευε). Κανεις αλλαγες σε αυτο το πινακα αναλογα τις αναγκες σου ή/και φτιαχνεις και άλλους.

 

 

Δε θα ήταν κακη ιδέα να βάλεις το όλο database operation μεσα σε try/catch block και να καταγραφεις καπου τα errors που παίρνεις.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το Star_Light δεν έχει να κάνει τοσο με την ακριβή του μετάφραση :P

 

Αρχικα προέκυψε απο τραγούδια που άκουγα πιο μικρός πχ απο Muse το Star_Light

 

http://www.youtube.com/watch?v=lGqFXtgUwzs (2006)

 

καθως και απο το

 

http://www.youtube.com/watch?v=A5ZpEAoWNwA (2001)

 

Oσο για αυτα που μου εξήγησες τα καταλαβα και θα τα δοκιμάσω διάβασα λιγο και την try .. catch

θα την βάλω και αυτη μέσα για να κάνουμε καλυτερο debugging. Κοιτα συμφωνω για αυτο που λες για την SQL αλλα ρε συ εννοουσα αν εχει η VB καμια συναρτηση δικια της να κανουμε την δουλεια μας. Απο SQL δεν εχω μεγαλη εμπειρια αλλα τις βασικες εντολες τις καταλαβαινω οκ ειχα φτιαξει παλια απο bash σε λινουξακι μια δικια μου βάση δεδομένων και ειχα παιξει λιγο με τα δικαιωματα της οταν ειχα εγκαταστησει και την PHP 5 αυτο μονο.

 

Ευχαριστω !

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καλημέρα.

 

Βασικά αντικατέστησα την INSERT με την UPDATE και έβαλα και error handling

.... το αρχειο δεν μου το ανοιγε με καταληξη .mdb δεν το εβρισκε καν θέλει *.accdb

 

βεβαια τωρα εχω άλλα προβληματα.... καταρχην μου λεει οτι δεν έχει οριστει τιμή για μια ή περισσοτερες παραμετρους. Noμιζω αυτο το προβλημα εχει να κανει με την αλλαγη της SQL εντολης. Αλλα γιατι ειναι λαθος ετσι οπως την εχω. :/

 

Ο νέος κώδικας

 

http://ideone.com/ppCO2

 

Το powerpoint αρχειο δοκιμών :

 

http://www.filedropper.com/trials

 

Η access database δοκιμών :

 

http://www.filedropper.com/database_3

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Λαθος στο query σου

>
   sqlQueries.Add("UPDATE SHIPS SET PROBLEMS = 'secondColVal' WHERE NAME='firstColVal'")

διορθωσε το έτσι (θελει προσοχη, έχει μονά και διπλά quotes ( ' + " ) δίπλα-δίπλα

>
   sqlQueries.Add("UPDATE SHIPS SET PROBLEMS = '" & secondColVal & "' WHERE NAME='" & firstColVal & "'")

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Παλι το ιδιο μου βγαζει. Τι μπορει να ειναι αυτο? Ψαχνω και στο ιντερνετ τωρα

αλλα δεν βρισκω κατι. :/

 

Κατι συμβαινει με τα κελια ρε συ.... γιατι δηλωνουμε 2 μεταβλητες ενω εχω πινακα 3 x 3 πχ... Οι γραμμές ειναι 3 οχι 2

 

Οι στηλες ειναι 2 οκ.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Οκ, το προβλημα ΔΕΝ ηταν στο query. To query ηταν οντως λαθος αλλα απλα δε κανει τιποτα οποτε ετσι και αλλιως αλλαξε το.

 

Όσον αφορα το ερρορ, δε μπορω να το αναπαραγω, μπορεις να το παραθεσεις αναλυτικα;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...