الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استدعاء بيانات من ملف اكسل ووضعها بلست فيو في فيجوال بيسك

مغلق
بدأه Noha_1988 في 9 أغسطس 2007 · 28 رد · 6,865 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم جميعا اتمني ان يكون الجميع بخير وسلامه

عندي مشكله بمشروع التخرج واتمنى منكم مساعدتي فيها مشكلتي هي استدعاء بيانات من ملف اكسل واظهارها بلست فيو

display data from exel file in listview in VB form

لا اريد استدعاء ملف ثابت غير متغير ما اريده هو ان يكون عندي مجال لتحديد مسار الملف اينما كان مخزن بالجهاز وعند ايجاده والضغط على موافق يتم تفريغ مدخلات الملف في اللست فيو الموجوده عندي انا قمت ببرمجة كل شي ما عدا فكرة استدعاء ملف الاكسل لاني لم اجد اي معلومات او افكار قديمه تساعدني بذلك في المنتدى وكذلك واجهت مشكله عند عمل رن لبعض الامثله التي تخص الاكسل بانه يظهر عندي الرسالة التاليه ارجو حل هذه المشكله ايضا

error messege " run time error 3170 couldnot fined installable ISAM"

في المشروع المرفق يقوم باستدعاء بيانات من ملف تكست بشكل تلقائي

قمت بارفاق المشروع البسيط وكذلك ملف الاكسل المراد استدعاءه وارجو المساعده بذلك ولكم جزيل الشكر

project_file.rar

لا تمت قبل ان تكون ندا

#2

السلام عليكم اشعر بالحزن اني لم احصل ولا على اي رد او تلميح لحل المشكله ولذلك سوف اطرح المشكله بشكل ابسط وهو هل يمكن كتابة كود بالفيجيوال بيسك يقوم باستعداء ملف اكسل وقارئته شطر شطر وتخزينه سطر سطر بملف تكست على ان يتم الفصل بين الخلايا بكل سطر بفاصله او فراغ

عند النظر بالمرفقات للموضوع بالاعلى تجدون ملفين تكست واكسل والرماد استدعاء ملف الاكسل ونسخ محتوياته بنفس التنسيق الموجوده عليه محتويات ملف التكست ارجو منكم المساعده ولكم جزيل الشكر.

لا تمت قبل ان تكون ندا

#3

اختي انا اعرف الطريقة بالاتصال بقاعدة الاكسيل

وربطها ل ولكن لا اعرف اظهارها في ليست فيو

ولكن ممكن ان تضعيها في داتا جريد او شيء من هذا القبيل

وهذا كل ما اعرفة ما رايك؟؟

#4

شكرا الك اخي hamata لكن مشروعي يعتمد على لست فيو ولا يمكني تغيرها الى جريد لان هذا يعني اعادة بناء المشروع كامل من البدياه ولكن هل يمكن ان تساعدني بكود يقوم باستدعاء ملف اكسل ونسخ بياناته بملف تكست سطر سطر .

زاتمنى من لااخوه المساعده ايضا حيث اني وجدت كود للتحويل من تكست لاكسل وليس العكس واتمنى المساعده ببناء كود يقول بتحويل ملف الاكسل المرفق بمشروعي الى ملف تكست ... لكم جزيل الشكر

لا تمت قبل ان تكون ندا

#5

ساحاول اختي الكريمة

#6

شكرا الك اخي hamata انا ايضا احاول بناء الكود وانتظر مشاركتك معي ومشاركة الاخوه الافاضل لتعم الفائده وشكرا للجميع

لا تمت قبل ان تكون ندا

#7

السلام عليكم

أختي العزيزة

هذا الكود يقوم بالتحويل من إكسل إلى ملف نصي و لكن غير مجرب بصراحة

Private Sub Command1_Click()
'============================
Dim exl As Excel.Application
Dim wbk As Workbook
Dim filename As String

	Set exl = New Excel.Application
	Set wbk = exl.Workbooks.Add

	filename = exl.GetOpenFilename
	exl.Workbooks.Open filename

	Set wbk = exl.ActiveWorkbook

	filename = exl.GetSaveAsFilename
	If Not Trim(filename) = "False" Then
		wbk.SaveAs filename, xlCurrentPlatformText
	End If

	exl.Quit
	Set wbk = Nothing
	Set exl = Nothing

End Sub

LORD COVER

GOOD BYTE

مؤسس شبكة مواقع إجابتي أول شبكة مواقع عربية للأسئلة والأجوبة

#8

انتظري اختي جات في دماغي فكرة هايلة

لحظة اجربها

#9

أختي أنا لدي الحل لكن الحل فكرة نظرية وأنت عليك الأكواد وهو أنك تعملين Loop في شرط أنه يسوي اللوب إلى أن يصل لآخر سطر وتضعين داخل هذا Loop أنه يقرأ السطر الأول ومن ثم تضعة في متغير ومن ثم تضعين المتغير في اللست ومن تعاد العملية إلى أن تنتهي القاعدة.

إن شاء الله بعد كم يوم أضع لك الكود.

google.gif

spamxk4.gif

petitionbanner17a.gif

Email : sao_-5000@hotmail.com

#10

السلام عليكم اخواني وشكررا لتفاعلكم معي

بعد البحث يمنتديات ومواقع تخص الفيجيوال بيسك 6 وجدت هذا الكود الذي يقوم بتحويل من اكسل الى تكست ولكن بسبب خبرتي البسيطه لم افهم الكود بشكل كامل ولم استطيع تطبيقه وتحويله لمثال بسيط يسهل فهم العمليه لذلك اطلب من خبراء الفيجيوال بيسك مساعتي وتحويل الكود لبرنامج بسيط ارجو المساعده ولكم جزيل الشكر

decleration

Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset

Dim ts As TextStream, fill As File
Dim fso As New FileSystemObject
Dim app As String
Dim i	   As Integer
Dim sFields As String
Dim sData   As String
Dim myPath As String
Dim fld As ADODB.Field
Dim fldCat As String
Dim iSpace	  As Integer
Dim sSourceData As String
Dim currLoc, cnt As Integer
Dim StringLength As Integer
Dim tmpChar As String

´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´
Code

Private Sub Main()
Dim a, b, s, y As Integer

On Error GoTo Form_Load_Error

'To read from the dos prompt
	catch1 = Command$
   'MsgBox catch1
   cnt = 0
  'catch1 = "c:\test.xls Sheet1"


	StringLength = Len(catch1)
	For currLoc = 1 To StringLength

		tmpChar = Mid(catch1, currLoc, 1)

'		If InStr(" ", tmpChar) Then
		If tmpChar = " " Then
			' Replace with a space

			 'Mid(catch1, currLoc, 1) = " "
			 cnt = cnt + 1

		 Else
			 If cnt >= 1 Then
			   app = app & " "
			   cnt = 0
			 End If

			 app = app & tmpChar
		End If


	Next

	catch = app






   a = InStr(1, Trim(catch), "xls")
   b = InStr(1, Trim(catch), "nobypass")
   s = InStr(1, Trim(catch), " ")
   y = InStr(s + 1, Trim(catch), " ")
   'slas = InStr(1, Trim(catch), "\")



 If Val(s) = 0 And Val(y) = 0 Then
  If a > 0 Then
   nm = catch
   fl = Mid$(nm, 1, (Len(nm) - 4)) & ".txt"
   Else
	nm = catch & ".xls"
	fl = catch & ".txt"
  End If
   sh = "Sheet1$"

End If

If Val(y) = 0 And Val(s) <> 0 Then
 If a > 0 Then
  nm = Mid$(catch, 1, s - 1)
  fl = Mid$(nm, 1, (Len(nm) - 4)) & ".txt"
 Else
  nm = Mid$(catch, 1, s - 1) & ".xls"
  fl = Mid$(nm, 1, s - 1) & ".txt"
 End If
  sh = Mid$(catch, s + 1, Len(catch)) & "$"

End If



If Val(s) <> 0 And Val(y) <> 0 Then
 If a > 0 Then
  nm = Mid$(catch, 1, s - 1)
 Else
  nm = Mid$(catch, 1, s - 1) & ".xls"
 End If
  sh = Mid$(catch, Val(s + 1), Val(y - s - 1)) & "$"
  If Val(b) = 0 Then
	  fl = Mid$(catch, Val(y + 1), Len(catch))
   Else
	  fl = Mid$(catch, Val(y + 1), Val(b - y - 1))
  End If
End If



 Set rs = New ADODB.Recordset
 Set cnn = New ADODB.Connection





	   'myPath = "C:\" & nm
		myPath = nm


	'If rs.State = 1 Then rs.Close
	  cnn.Open "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & myPath & ";ReadOnly=1"
	  rs.Open "SELECT * FROM [" & sh & "]", cnn


	Set fs = CreateObject("Scripting.FileSystemObject")
	Set ts = fs.CreateTextFile(fl, True)


  Do While Not rs.EOF
  i = 0
		For Each fld In rs.Fields

		If Val(b) > 0 Then
		  fldCat = fldCat & IIf(IsNull(fld), "|", fld & "|")
		Else
		  If IsNull(fld) = True Then
			Else
			 'fldCat = fldCat & fld & "|"
			 If i = 0 Then
			   fldCat = fldCat & fld
			  Else
			  fldCat = fldCat & "|" & fld
			 End If
			 i = i + 1
		   End If
		End If
		Next

		 If i <> 0 Then
			ts.WriteLine (Trim(fldCat))
		 End If

		  fldCat = ""
		  rs.MoveNext
  Loop


  ts.Close

'  Open " & x & " For Input As #1
'
'  Close 1#



   On Error Resume Next
   If Not rs Is Nothing Then
	 rs.Close




   Set rs = Nothing
   End If

	If Not cnn Is Nothing Then
	  cnn.Close
	Set cnn = Nothing
	End If

   On Error GoTo 0




'Form_Load_Exit:
   Exit Sub

Form_Load_Error:

   MsgBox "Usage   : Excel-File [Sheet Output nobypass] " & vbCrLf & _
		  "Example: cett xyz.xls sheet1 out.txt				 -create out.txt from xyz.xls sheet1 sheet" & vbCrLf & Space(13) & _
		  "  cett xyz.xls jan jan.txt					   -create jan.txt from xyz.xls jan sheet " & vbCrLf & _
		  "			   cett xyz											-create xyz.txt from xyz.xls sheet1 sheet " & vbCrLf & _
		  "			   cett xyz.xls exp exp.txt nobypass	 -create exp.txt from xyz.xls exp sheet" & vbCrLf & _
		  "																		without bypassing the blank lines ", , "CETT : Convert Excel To Text"


End Sub

لا تمت قبل ان تكون ندا

#11

جارى وضع الحل ان شاء الله

#12

هذا برنامج سبق أن وضعه أحد الزملاء بالمنتدى يقوم بتحويل البيانات الموجودة فى صفحة اكسيل الى قاعدة بيانات أكسيس

و بالتالى يمكن التعالم معها بسهولة حينئذ من خلال الفجوال بيسيك

وأى خدمة نحن تحت أمركم

مقابل ذلك هو دعواتكم لنا و للمسلمين جميعا

excelToAccess.rar

#13

شكرا الك اخي احمد وليد معقول الاقي حل لهلمشكله لاني كثير تعبت وانا بجرب وبدور

عن جد شكرا الك وللكل الي دخله وحاوله يساعدوني

لا تمت قبل ان تكون ندا

#14

اخي العزيز انا شوفت المثال هذا او اشي مشابه لكن ما اريده هو مختلف تماما

اريد ان اقوم بتحديد مشار ملف الاكسل ويكون موجود باي مكان على جهازي ممكن على دي او سي او دسك توب وبعد ذلك وبالضغط على زر معين يقوم بقراءة محتويات ملف الاكسل وتصديرها الى ملف تكست على ان تصدر سطر سطر ويفصل بين محتويات الخلايا بفاصله او نقطه وبذلك يمكني استخدام ملف التكست بمشروعي

هذه هي مشكلتي انا قمت بوضع كود في هذا الموضوع ولكني لم استطيع التعامل معه لانه من موقع اجنبي وغير واضح اتمنى ان تكون قد فهمت مشكلتي ولك جزيل الشكر

لا تمت قبل ان تكون ندا

#15

لحظة اختي دي سهلة اعدليك المثال

#16

تفضلي اختي

عمللتيلك فتح ملف وتشغيله

وببحث الان عن الكود بتاع التحويل

project_file1.rar

#17

بسم الله الرحمن الرحيم

الى الاخت العزيزه صاحبه الموضوع

الامر اسهل من المتوقع لانك هتغيرى امتداد الملف بدلا من goods.txt الى goods.xls

و ممكن تغيرى المكان للملف الى انتى عايزاه بكتابه الكود فى txt box

مثال

Open App.Path = txt10.txt "\txt11.txt" For Input As #1

Seek #1, 1

و طبعا علشان اامكان الى انتى هتكتبيه يبقى فعال لازم تضيفى timer علشان يعمل connect سريع

,و جربى و مش هتخسرى حاجه

و انا بحاول اعدل فى الاكواد و هرفق كل التعديلات لما اخلص

اخوكم محمد صبحى

مبتداء

تم تعديل هذه المشاركة بواسطة anywaysa في 10 أغسطس 2007 في 18:31

#18

السلام عليكم جميعا شكرا لكم لتفاعلكم معي ولتبرعكم بمساعدتي

انا قمت ببعض التعديلات على المشروع الذي بناه الاخ

hamata

شكرا له كثير لكن ما زال المشروع لا يعمل كما يجب

فالمطلوب وبكل بساطه هو تحديد ملف اكسل من اي مكان بجهاز الكمبيوتر ومن ثم الضغط على زر يقوم بنسخ محتويات ملف الاكسل الى ملف تكست موجود مع المشروع وهنالك لست فيو يعرض فيها محتويات ملف التكست مع العلم انه ليس لها اي تاثير على المطلوب وهي مبرمجه مسبقا ولكن عند تشغيل البرنامج المرفق يمكن استدعاء ملف الاكسل لكن ما ينسخ الى ملف التكست خربشات لا معني لها

الرجاء المساعده من الجميع لان الامر متوقف عليه مشروع تخرجي وانا لست خبيره او مختصه بالبرمجه

قمت بارفاق ما صممه الاخ حماده مع بعض التعديلات

وكذلك صوره للنموذج المطلوب تصميمه

ومشروع ضخم من موقع اجنبي لم افهم منه شي يقوم بالتحويل من والى جميع انواع الداتا بيز

الرجاء من الجميع ان لا يبخل علينا ويساعدنا وشكرا للجميع

Excel2Text.rar

New_Folder__2_.rar

post-125845-1186774453_thumb.jpg

form.ppt

لا تمت قبل ان تكون ندا

#19

اختي البرنامج فعلا حول

بس الليست فيو ما يقرأها

يعني عايزين كود مخصوص

او تعملي البرنامج يقرا من الاكسيل

عموما هشوف كده علي بكرة او بعده

#20

اخي الكريم مشكلة اللست فيو بحلها بس بدي برنامج بسيط يحدد مسار ملف الاكسل وبالضغط على زر يقوم بنسخ البيانات من ملف الاكسل الى ملف التكست والنسخ يتم سطر سطر وبين محتويات الخلايا في السطر الواحد يفصل بينها بفاصله او نقطه او اي شيء

ما تهتم بمشكلة اللست فيو اطلع على شكل النموذج المرفق بالاعلى بالصوره وسوف تعرف ما احتاج بالزبط وانا بحل مشكلة اللست فيو

لا تمت قبل ان تكون ندا

#21

عموما هحاول واقوليك

#22

شكرا اخ حماده لاهتمامك وبتمنى من الجميع المساعده في الحل وشكرا لكل الي حاول معي

:(

لا تمت قبل ان تكون ندا

#23

استني في حل اجربة الان

#24

بس كل حقل في تكسيت (ملف نصي)

#25

لم تنجح ...................... :(

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…