Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   αριθμομηχανη (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/96-arithmomixani.html)

sfedona85 17-02-09 13:55

αριθμομηχανη
 
καλησπερα
προσπαθω να φτιαξω αριθμομηχανη μεσα σε φορμα. γινεται? δεν θελω η φορμα μου να εχει καμια σχεση με excel. απλα για πραξεις θελω να εχω μια αριθμομηχανη.! αλλα δεν ξερω πως γινεται! :!:

Tassos 18-02-09 18:04

Re: αριθμομηχανη
 
Καλησπέρα και συγχαρητήρια στο νέο αυτό φόρουμ!

Κατ αρχή, δε είμαι σίγουρος αν βρισκόμαστε στην κατάλληλη ενότητα του φόρουμ
(...Εδώ μπορείτε να αποστέλετε διάφορα εργαλεία για τις εφαρμογές σας σε mdb)!

Αγαπητέ φίλε, αν τα αποτελέσματα των πράξεων αυτών σχετίζονται με κάποια πεδία
της φόρμας σου τότε θα χρειαστούν περισσότερες πληροφορίες από την πλευρά σου
προκειμένου να πάρεις μια απάντηση.

Αν πάλι χρειάζεσαι μια απλή αριθμομηχανή, νομίζω ότι θα σ εξυπηρετήσει η αριθμομηχανή
των Windows που με τη χρήση ενός κουμπιού και του παρακάτω κώδικα θα μπορόυσες
να την ανοίγεις κατευθείαν από τη φόρμα.

Σε μια λειτουργική μονάδα πέρασε τον παρακάτω κώδικα:

Κώδικας:

Option Compare Database
Option Explicit

Declare Function FindWindow Lib "user32" Alias _
        "FindWindowA" (ByVal lpClassName As Any, ByVal _
        lpWindowName As Any) As Long

Declare Function SetWindowPos Lib "user32" _
        (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
        ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _
        ByVal cy As Long, ByVal wFlags As Long) As Long

Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, _
        lpRect As Rect) As Long
       
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
                  (ByVal hwnd As Long, ByVal lpszOp As String, _
                    ByVal lpszFile As String, ByVal lpszParams As String, _
                    ByVal LpszDir As String, ByVal FsShowCmd As Long) _
                    As Long

Type Rect
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Const SW_SHOWNORMAL = 1&
Const HWND_TOPMOST = -1&
Const SWP_NOSIZE = &H1

Sub LoadCalc(frmHandle&)

    Dim xHandle&, i%, LRect As Rect, appLeft&, appTop&, _
            frmVM&, frmHM&, appHM&, appVM&, Retval&

    Retval = ShellExecute(frmHandle, "open", "CALC.EXE", "", "", SW_SHOWNORMAL)
    If Retval < 33 Then
        MsgBox "Could not load Windows Calculator!!", vbExclamation, "Load failed!"
        Exit Sub
    End If
    While xHandle = 0
        DoEvents
        xHandle = FindWindow("SciCalc", 0&)
    Wend

    GetWindowRect frmHandle, LRect
    frmHM = LRect.Left + (LRect.Right - LRect.Left) / 2
    frmVM = LRect.Top + (LRect.Bottom - LRect.Top) / 2

    GetWindowRect xHandle, LRect
    appHM = (LRect.Right - LRect.Left) / 2
    appVM = (LRect.Bottom - LRect.Top) / 2

    appLeft = frmHM - appHM
    appTop = frmVM - appVM

    SetWindowPos xHandle, HWND_TOPMOST, appLeft, appTop, 0, 0, SWP_NOSIZE
   
End Sub

Και στο συμβάν του κουμπιού:

Κώδικας:

Private Sub cmdCallCalc_Click()
    LoadCalc Me.hwnd
End Sub


kon73 19-02-09 11:59

Re: αριθμομηχανη
 
Καλημέρα και να ευχαριστήσω για την απάντηση που έδωσε ο φίλος Τάσος. Και μεταφέρω όλο το θέμα εδώ.

Μια σύντομη απάντηση και ίσως ποιο γρήγορη στην εκτέλεσή του από την Access είναι η εντολή
Κώδικας:

shell("calc.exe")
Μπορούμε να εισάγουμε αυτόν τον κώδικα σε μία συνάρτηση πχ
Κώδικας:

Public Function CallCalc()
            shell("calc.exe")
End function

Μπορούμε να καλούμε την συνάρτηση πατώντας πχ το F2 καθόλικα βάζοντας την συνάρτηση να καλείτε από τη μακροεντολή Autokeys και έτσι με F2 όπου και να είμαστε στην εφαρμογή καλούμε την εφαρμογή αριθμομηχανή.

Φιλικά

Ηλιάδης Κωνσταντίνος / Kon73

sfedona85 19-02-09 20:10

Re: αριθμομηχανη
 
ναι κατι απλο ηθελα.. ναι το calculator των win μου ειναι υπερ αρκετο.. ευκολο ακουγετε αυτο που λετε.. αλλααααα... που περναω τον κωδικα.. αρα βαζω κουμπακι μεσα στην φορμα και μετα περναω μεσα απο vbasic τον κωδικα που βλεπω πιο πανω?

Tassos 20-02-09 10:36

Re: αριθμομηχανη
 
Καλημέρα σε όλους!

Και στις 2 προαναφερόμενες λύσεις, ανοίγεις το παράθυρο του VBE Alt + F11, επιλέγεις Insert > Module
για να δημιουργήσεις μια νέα λειτουργική μονάδα στην οποία μπορείς να αντιγράψεις τον κώδικα που θέλεις (στο δεξί παράθυρο).

Για το πώς θα καλέσεις μια ενέργεια με πλήκτρο πχ. F2 ή με κουμπί, θα σου πρότεινα να ρίξεις μια ματιά στο παρακάτω Link:

http://office.microsoft.com/el-gr/acces ... 2526091032

Αν σου δημιουργηθεί κάποια απορία σχετικά, γράψε απλά στο φόρουμ.

Φιλικά


Η ώρα είναι 12:44.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2